用到的库有:
android-support-v7-appcompat
android-support-v7recyclerview
drawee
fbcore
fresco
FruitShop
p_w_picpathpipeline
p_w_picpathpipeline-base
p_w_picpathpipeline-okhttp
lib_BarCode
lib_CountdownView
lib_Mob_SMSSDK
lib_PullToRefresh_niu
lib_ViewPagerIndicator
lib_Weibo
lib_yuchen0612_bmobcompat
static-webp
主要代码:
public class FirstActivity extends FragmentActivity
{
private LinearLayout firstlin;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
firstlin = (LinearLayout) findViewById(R.id.firstlinear);
firstlin.postDelayed(new Runnable()
{
public void run()
{
firstlin.setVisibility(View.VISIBLE);
firstlin.postDelayed(new Runnable()
{
public void run()
{
startActivity(new Intent(FirstActivity.this,MainActivity.class));
FirstActivity.this.finish();
}
}, 3000);
}
}, 3000)
;
}
}
public class MainActivity extends FragmentActivity
{
private FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("home").
setIndicator(getTabIndicator("首页", R.drawable.selector_home)),
HomeFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("destination").
setIndicator(getTabIndicator("目的地", R.drawable.selector_dest)),
DestinationFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("found").
setIndicator(getTabIndicator("发现", R.drawable.selector_found)),
FoundFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("trip").
setIndicator(getTabIndicator("行程玩法", R.drawable.selector_trip)),
TripFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("my").
setIndicator(getTabIndicator("我的", R.drawable.selector_my)),
MyFragment.class, null);
}
@SuppressLint("ResourceAsColor")
protected View getTabIndicator(String title,int id)
{
View layout = getLayoutInflater().inflate(R.layout.main_bottom, null);
TextView tv = (TextView) layout.findViewById(R.id.bottom_tv);
tv.setText(title);
ImageView img = (ImageView) layout.findViewById(R.id.bottom_img);
img.setImageResource(id);
return layout;
}
}
public class LogInActivity extends WeiboSSOActivity implements OnClickListener
{
private SharedPreferences sp;
private EditText user;
private EditText password;
private Editor edit;
@Override
public void finish()
{
super.finish();
overridePendingTransition(0, R.anim.tween_slide_out);
}
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.bt_login_back:// 退出
LogInActivity.this.finish();
break;
case R.id.iv_partner_sina:// 微博
wbLogin();
edit.putBoolean("user",false);
edit.commit();
LogInActivity.this.finish();
break;
case R.id.login_submit:// 微博
String uname = user.getText().toString();
String pw = password.getText().toString();
if(uname.equals("visen")&&pw.equals("123456"))
{
Toast.makeText(this, "登录成功",Toast.LENGTH_SHORT).show();
edit.putBoolean("user",true);
edit.commit();
LogInActivity.this.finish();
}else
{
edit.putBoolean("user",false);
edit.commit();
Toast.makeText(this, "用户或密码错误",Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
@Override
protected int getLayoutID()
{
return R.layout.activity_login;
}
@Override
protected void initUI()
{
sp = getSharedPreferences("data", 0);
edit = sp.edit();
user = (EditText) findViewById(R.id.login_id);
password = (EditText) findViewById(R.id.login_password);
Button submit = (Button) findViewById(R.id.login_submit);
ImageView back = (ImageView) findViewById(R.id.bt_login_back);
ImageView sina = (ImageView) findViewById(R.id.iv_partner_sina);
back.setOnClickListener(this);
sina.setOnClickListener(this);
submit.setOnClickListener(this);
}
@SuppressLint("CommitPrefEdits")
@Override
protected void getToken(String token)
{
edit.putString("token", getToken());
edit.putString("uid", getUid());
edit.commit();
}
}
public class DetileActivity extends FragmentActivity {
String str = "<昆大丽-香格里拉双飞8日游>家庭立减600元,骑行双廊,好评如潮,玉龙雪山普达措,赠温泉";
private ViewPager pager_detile;
private MyAdapter myAdapter;
private List
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detile);
TextView tv_detile_title = (TextView)findViewById(R.id.tv_detile_title);
tv_detile_title.setText(str);
iniData();
iniPaper();
iniListview();
}
private void iniData() {
ApiClient.getDetilelist(this, new ResponseListener() {
@Override
public void onResponse(String arg0) {
Detile detile = GsonUtils.parseJSON(arg0, Detile.class);
Data data = detile.getData();
List
JourneyDetails = journeyDetailList.get(0).getDefaultJourneyDetail();
}
@Override
public void onErrorResponse(VolleyError arg0) {
}
});
}
private void iniListview()
{
ListView4ScrollView list_detile = (ListView4ScrollView) findViewById(R.id.list_detile);
myAdapter = new MyAdapter();
list_detile.setAdapter(myAdapter);
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
if (JourneyDetails != null) {
return JourneyDetails.size();
}
return 0;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@SuppressLint({ "ViewHolder", "InflateParams" })
@Override
public View getView(int position, View arg1, ViewGroup arg2)
{
View inflate = getLayoutInflater().inflate(R.layout.list_item_detile, null);
TextView day = (TextView) inflate.findViewById(R.id.tv_day);
TextView food = (TextView) inflate.findViewById(R.id.tv_food);
TextView stay = (TextView) inflate.findViewById(R.id.tv_stay);
DefaultJourneyDetail defaultJourneyDetail2 = JourneyDetails.get(position);
day.setText(defaultJourneyDetail2.getJourneyName()+defaultJourneyDetail2.getJourneyDescription());
food.setText(defaultJourneyDetail2.getFoodAndStays().getFood());
stay.setText("住宿:"+defaultJourneyDetail2.getFoodAndStays().getStay());
return inflate;
}
}
private void iniPaper() {
pager_detile = (ViewPager)findViewById(R.id.pager_detile);
FragmentManager fm = getSupportFragmentManager();
PaperDetileAdapter paperAdapter = new PaperDetileAdapter(fm);
pager_detile.setAdapter(paperAdapter);
}
class PaperDetileAdapter extends FragmentStatePagerAdapter{
public PaperDetileAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new DetileChildFragment(position);
}
@Override
public int getCount() {
return 5;
}
}
}
public class BarCodeActivity extends Activity
{
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bar_code);
mTextView = (TextView) findViewById(R.id.barcode_tv);
Intent openCameraIntent = new Intent(this, CaptureActivity.class);
startActivityForResult(openCameraIntent, 0);
}
public void barCodeCanle(View v)
{
BarCodeActivity.this.finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// 处理扫描结果(在界面上显示)
if (resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
String scanResult = bundle.getString("result");
mTextView.setText(scanResult);
}
}
}
public class SearchActivity extends Activity implements OnClickListener
{
private TextView cancle;
private TabHost mTabHost;
private ListView searchlv;
private TextView titleTv;
private EditText titleEdit;
private TextView showTv;
private List
private List
private ArrayList
private ArrayList
private LetterView letterView;
private Runnable rn;
private MyAdapter myAdapter;
private ListView lvJing;
private GridHotAdapter hotAdapter;
private SearchAdapter searchAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
initData();
initLetterView();
initTabHost();
initControlView();
}
private void initData()
{
ApiClient.getSearch(this, new ResponseListener()
{
@Override
public void onResponse(String arg0)
{
Cities cities = GsonUtils.parseJSON(arg0, Cities.class);
List
mHotcityList.clear();
mHotcityList.addAll(hotcity);
List
mAllcityList.clear();
mAllcityList.addAll(allcity);
hotAdapter.notifyDataSetChanged();
myAdapter.notifyDataSetChanged();
addLetter(allcity);
letterView.setLetter(mLetter);
}
@Override
public void onErrorResponse(VolleyError arg0)
{
Log.e("网络下载失败", "网络下载失败");
}
});
}
private void addLetter(List
{
mLetter.add("推荐");
mLetter.add("历史");
mLetter.add("热门");
for(int i=0;i {
Allcity all = allcity.get(i); String letter = getLetter(all); if(!mLetter.contains(letter)) { mLetter.add(letter);
} }
} @SuppressLint("DefaultLocale") private String getLetter(Allcity all) { String pinyin = all.getPinyin(); String letter = pinyin.substring(0, 1).toUpperCase(); return letter; } private void initControlView() {
showTv = (TextView) findViewById(R.id.search_jing_tv); lvJing = (ListView) findViewById(R.id.search_lv_jing); initHeadView(); myAdapter = new MyAdapter(); lvJing.setAdapter(myAdapter); searchlv = (ListView) findViewById(R.id.search_listview);//搜索列表内容 searchlv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { startActivity(new Intent(SearchActivity.this,DetileActivity.class)); } });
searchAdapter = new SearchAdapter(); searchlv.setAdapter(searchAdapter); ImageView exit = (ImageView) findViewById(R.id.search_exit); titleTv = (TextView) findViewById(R.id.search_titleTv); titleEdit = (EditText) findViewById(R.id.search_edit);
titleEdit.addTextChangedListener(new TextWatcher() {
@SuppressLint("DefaultLocale") @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mSearchList.clear(); String input = s.toString().toLowerCase(); if(!TextUtils.isEmpty(input)) {
for(int i=0;i { Allcity allcity = mAllcityList.get(i); String name = allcity.getName(); String pyCity = allcity.getPinyin(); if(name.startsWith(input)||input.startsWith(pyCity)) { mSearchList.add(name); searchAdapter.notifyDataSetChanged(); }
} }
searchAdapter.notifyDataSetChanged();
}
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override public void afterTextChanged(Editable s) {
} });
cancle = (TextView) findViewById(R.id.search_cancle); exit.setOnClickListener(this); titleTv.setOnClickListener(this); cancle.setOnClickListener(this); }
@SuppressLint("InflateParams") private void initHeadView() { View headview=getLayoutInflater().inflate(R.layout.search_headview, null); GridView4ScrollView gridHot = (GridView4ScrollView) headview.findViewById(R.id.search_grid02); hotAdapter = new GridHotAdapter(); gridHot.setAdapter(hotAdapter); lvJing.addHeaderView(headview); }
class SearchAdapter extends BaseAdapter { @Override public int getCount() { return mSearchList.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @SuppressLint({ "ViewHolder", "InflateParams" }) @Override public View getView(int position, View convertView, ViewGroup parent) { View searchlayout=getLayoutInflater().inflate(R.layout.search_firstletter_linear, null); TextView firstletter = (TextView) searchlayout.findViewById(R.id.firstletter_tv); firstletter.setVisibility(View.GONE); TextView infro = (TextView) searchlayout.findViewById(R.id.letter_infro); infro.setText(mSearchList.get(position)); return searchlayout; }
}
class GridHotAdapter extends BaseAdapter {
@Override public int getCount() { return mHotcityList.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @SuppressLint({ "ViewHolder", "InflateParams" }) @Override public View getView(int position, View convertView, ViewGroup parent) { View gridLayout=getLayoutInflater().inflate(R.layout.headview5, null); TextView tv = (TextView)gridLayout.findViewById(R.id.h5_tv); tv.setTextSize(12); Hotcity hotcity = mHotcityList.get(position); tv.setText(hotcity.getName());
return gridLayout; }
}
class MyAdapter extends BaseAdapter {
@Override public int getCount() { return mAllcityList.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @SuppressLint({ "ViewHolder", "InflateParams" }) @Override public View getView(int position, View convertView, ViewGroup parent) { View layout= getLayoutInflater().inflate(R.layout.search_firstletter_linear, null);
TextView firstletter = (TextView) layout.findViewById(R.id.firstletter_tv); TextView infro = (TextView) layout.findViewById(R.id.letter_infro);
infro.setText(mAllcityList.get(position).getName()); if(mAllcityList.size()>0) { Allcity allcity = mAllcityList.get(position); String first = getLetter(allcity); if(position==0) { firstletter.setVisibility(View.VISIBLE); firstletter.setText(first); }else { Allcity allcity2 = mAllcityList.get(position-1); String next = getLetter(allcity2); if(first.equals(next)) { firstletter.setVisibility(View.GONE); }else { firstletter.setVisibility(View.VISIBLE); firstletter.setText(first); } } }
return layout; }
}
private void initLetterView() {
letterView = (LetterView) findViewById(R.id.search_letterView); rn = new Runnable() { public void run() { showTv.setVisibility(View.INVISIBLE); } };
letterView.setOnLetterTouchListener(new onLetterTouchListener() {
@Override public void onLetterTouchUp() { showTv.postDelayed(rn, 1000); }
@Override public void onLetterTouchDown(String letter) { showTv.removeCallbacks(rn); showTv.setVisibility(View.VISIBLE); showTv.setText(letter); if(letter.equals("热门")||letter.equals("历史")||letter.equals("推荐")) { lvJing.setSelection(0); }else {
for(int i=0;i { Allcity allcity = mAllcityList.get(i); String first = getLetter(allcity); if(first.equals(letter)) { lvJing.setSelection(i+lvJing.getHeaderViewsCount()); break; } } }
} });
} private void initTabHost() { mTabHost = (TabHost) findViewById(android.R.id.tabhost); mTabHost.setup(); mTabHost.addTab(mTabHost.newTabSpec("jn").setContent(android.R.id.tabcontent).setIndicator(getInd("境内")));
}
@SuppressLint("InflateParams") private View getInd(String str) { View view=getLayoutInflater().inflate(R.layout.search_tabhost_linear, null); TextView tabTV = (TextView) view.findViewById(R.id.searchtab_tv); tabTV.setText(str); return view; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.search_exit: SearchActivity.this.finish(); break; case R.id.search_titleTv: titleTv.setVisibility(View.GONE); titleEdit.setVisibility(View.VISIBLE); searchlv.setVisibility(View.VISIBLE); mTabHost.setVisibility(View.GONE); cancle.setVisibility(View.VISIBLE); break; case R.id.search_cancle: titleTv.setVisibility(View.VISIBLE); titleEdit.setVisibility(View.GONE); cancle.setVisibility(View.GONE); searchlv.setVisibility(View.GONE); mTabHost.setVisibility(View.VISIBLE); break;
default: break; }
}
} public class PhoneActivity extends Activity implements OnClickListener {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_phone); findControl(); } private void findControl() { LinearLayout missPhone = (LinearLayout) findViewById(R.id.phone_miss); LinearLayout dialPhone = (LinearLayout) findViewById(R.id.phone_dial); dialPhone.setOnClickListener(this); missPhone.setOnClickListener(this); }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.phone_miss: PhoneActivity.this.finish(); break;
case R.id.phone_dial: Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:4007-999-999")); startActivity(intent); PhoneActivity.this.finish(); break;
default: break; }
}
@Override public void finish() { super.finish(); overridePendingTransition(0, R.anim.tween_slide_out); }
}