用到的库有:
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<DefaultJourneyDetail> JourneyDetails;
@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<JourneyDetailList> journeyDetailList = data.getJourneyDetailList();
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<Allcity> mAllcityList=new ArrayList<Allcity>();
private List<Hotcity> mHotcityList=new ArrayList<Hotcity>();
private ArrayList<String> mLetter=new ArrayList<String>();
private ArrayList<String> mSearchList=new ArrayList<String>();
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<Hotcity> hotcity = cities.getHotcity();
mHotcityList.clear();
mHotcityList.addAll(hotcity);
List<Allcity> allcity = cities.getAllcity();
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<Allcity> allcity)
{
mLetter.add("推荐");
mLetter.add("历史");
mLetter.add("热门");
for(int i=0;i<allcity.size();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<mAllcityList.size();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<mAllcityList.size();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);
}
}