这次我认领的任务是主界面功能的实现,这个项目相对前一个认领项目稍稍有些难度,所以花的时间和精力业更多了,而且有些地方跟本组同学发生了思想上擦出了火花,但是最后我们讨论并解决了。
这是这次我任务的java代码:
public class MainActivity extends ActionBarActivity implements View.OnClickListener{ private TextView txt_waimai; private TextView txt_find; private TextView txt_order; private FrameLayout ly_content; private HomeFragment homeFragment; private FindFragment findFragment; private OrderFragment orderFragment; private android.app.FragmentManager fManager ; private Toolbar toolbar; private DrawerLayout mDrawerLayout; private ActionBarDrawerToggle mDrawerToggle; private ListView lvLeftMenu; private String[] lvs = {"账户信息", "我的余额", "我的收藏", "服务中心", "系统设置"};//可以放入String中,在拿取出来 private ArrayAdapter arrayAdapter; private ActionBar actionBar ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fManager = getFragmentManager(); bindViews(); txt_waimai.performClick(); //模拟一次点击,既进去后选择第一项 findViews(); //获取控件 toolbar.setTitle("Foodie");//设置Toolbar标题 toolbar.setTitleTextColor(Color.parseColor("#FFFFFF")); //设置标题颜色// actionBar= getActionBar(); setSupportActionBar(toolbar) ;//支持ActionBar //创建返回键,并实现打开关/闭监听 mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.open_drawer, R.string.close_drawer) { @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); } }; mDrawerToggle.syncState(); mDrawerLayout.setDrawerListener(mDrawerToggle); //设置菜单列表,写一个listView布局将其优化 arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, lvs); lvLeftMenu.setAdapter(arrayAdapter); lvLeftMenu.setOnItemClickListener(new DrawerItemClickListener()); // setStatusBar();//设置沉浸式状态栏,5.0.1系统有点Bug toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.action_search: startActivity(new Intent(getApplicationContext(), Searchctivity.class)); break; case R.id.toolBar_btn_login: startActivity(new Intent(getApplicationContext(),LoginActivity.class)); break; } return false; } }); } //将ActionBar添加进来 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = new MenuInflater(this) ; inflater.inflate(R.menu.activity_main,menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.isCheckable()){ item.setChecked(true); } return super.onOptionsItemSelected(item); } //UI组件初始化与事件绑定 private void bindViews() { txt_waimai = (TextView) findViewById(R.id.txt_waimai); txt_find = (TextView) findViewById(R.id.txt_find); txt_order = (TextView) findViewById(R.id.txt_order); ly_content = (FrameLayout) findViewById(R.id.ly_content); txt_waimai.setOnClickListener(this); txt_find.setOnClickListener(this); txt_order.setOnClickListener(this); } //重置所有文本的选中状态 private void setSelected(){ txt_waimai.setSelected(false); txt_find.setSelected(false); txt_order.setSelected(false); } //隐藏所有Fragment private void hideAllFragment(FragmentTransaction fragmentTransaction){ if(homeFragment != null)fragmentTransaction.hide(homeFragment); if(findFragment != null)fragmentTransaction.hide(findFragment); if(orderFragment != null)fragmentTransaction.hide(orderFragment); } @Override public void onClick(View v) { FragmentTransaction fTransaction = fManager.beginTransaction(); hideAllFragment(fTransaction); switch (v.getId()){ case R.id.txt_waimai: setSelected(); txt_waimai.setSelected(true); if(homeFragment == null){ homeFragment = new HomeFragment(); fTransaction.add(R.id.ly_content,homeFragment); }else{ fTransaction.show(homeFragment); } break; case R.id.txt_find: setSelected(); txt_find.setSelected(true); if(findFragment == null){ findFragment = new FindFragment(); fTransaction.add(R.id.ly_content,findFragment); }else{ fTransaction.show(findFragment); } break; case R.id.txt_order: setSelected(); txt_order.setSelected(true); if(orderFragment == null){ orderFragment = new OrderFragment(); fTransaction.add(R.id.ly_content,orderFragment); }else{ fTransaction.show(orderFragment); } break; } fTransaction.commit(); } /** * ListView上的Item点击事件 * */ private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectItem(position); } } /** * 切换Item点击显示的页面 * * @param position */ private void selectItem(int position) { switch (position){ case 0: startActivity(new Intent(this,AccountActivity.class)); break; case 1: break; case 2: break; case 3: break; case 4: startActivity(new Intent(this,SettingActivity.class)); break; default: break; } } /** * 获取控件 */ private void findViews() { toolbar = (Toolbar) findViewById(R.id.tl_custom); mDrawerLayout = (DrawerLayout) findViewById(R.id.dl_left); lvLeftMenu = (ListView) findViewById(R.id.lv_left_menu); } /** * 设置沉浸式状态栏,需4.4版本以上 */// protected void setStatusBar() {// StatusBarUtil.setColor(this, getResources().getColor(R.color.colorPrimary));// StatusBarUtil.setColorForDrawerLayout(this, (DrawerLayout) findViewById(R.id.dl_left), getResources()// .getColor(R.color.colorPrimary));// } /** * 双击退出,根据时间来判断 */ long waitTime = 2000; long touchTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) { long currentTime = System.currentTimeMillis(); if((currentTime-touchTime)>=waitTime) { //让Toast的显示时间和等待时间相同 Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show(); touchTime = currentTime; }else { System.exit(0);//会跳屏,关闭时会出现黑屏,需要优化,不能用finish() } return true; } return super.onKeyDown(keyCode, event); }}
时间: 2024-10-19 14:21:14