用fragment实现菜单点击功能。需求:首页分为左右两块,左侧显示一级菜单,点击更新右侧的二级菜单。
BaseActivity.java
public class BaseActivity extends FragmentActivity {
long firstTime=0L;
private MyApplication application = (MyApplication) this.getApplication();
public boolean onKeyDown(int keyCode, KeyEvent event) {//捕捉返回键
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {//如果两次按键时间间隔大于800毫秒,则不退出
Toast.makeText(BaseActivity.this, "再按一次退出程序",
Toast.LENGTH_SHORT).show();
firstTime = secondTime;//更新firstTime
return true;
} else {
application.IMAGE_CACHE.saveDataToDb(this, "wloaa");
ExitActivityManger.getInstance().finish();
System.exit(0);//否则退出程序
}
}
return super.onKeyUp(keyCode, event);
}
}
MainActivity.java
public class MainActivity extends BaseActivity {
private MyApplication application;
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
application = (MyApplication) this.getApplication();
context = MainActivity.this;
mAbHttpUtil.setDebug(true);
setContentView(R.layout.activity_main);
main_show_keshi_rela=(RelativeLayout)findViewById(R.id.main_show_keshi_rela);
main_show_gonggao_rela=(RelativeLayout)findViewById(R.id.main_show_gonggao_rela);
//.....
fm = getSupportFragmentManager();
fragment1 = new ZhiliangFragment();
fragment2 = new GonggaoFragment();
//初始化的时候需要显示一个fragment,假设我们显示第二个fragment
//向容器中添加或者替换fragment时必须 开启事务 操作完成后 提交事务
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.showContentFrame, fragment1).commit();
initUi();
}
private void initUi(){
OnClickListener relaClick = new OnClickListener() {
@Override
public void onClick(View v) {
main_show_keshi_rela.setBackgroundResource(R.drawable.bg_leftbutton);
main_show_gonggao_rela.setBackgroundResource(R.drawable.bg_leftbutton);
FragmentTransaction ft = fm.beginTransaction();
switch (v.getId()) {
case R.id.main_show_keshi_rela:
main_show_keshi_rela.setBackgroundResource(R.drawable.bg_leftbutton_selected);
ft.replace(R.id.showContentFrame,fragment1 );
ft.commit();
break;
case R.id.main_show_gonggao_rela:
main_show_gonggao_rela.setBackgroundResource(R.drawable.bg_leftbutton_selected);
ft.replace(R.id.showContentFrame,fragment2 );
ft.commit();
break;
default:
break;
}
}
};
main_show_keshi_rela.setOnClickListener(relaClick);
main_show_gonggao_rela.setOnClickListener(relaClick);
}
}
GonggaoFragment.java
public class GonggaoFragment extends Fragment {
private Button button1;
private Button button2;
public GonggaoFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_gonggao, container, false);
findView(rootView);
return rootView;
}
private void findView(View rootView) {
// 发布公告
button1=(Button)rootView.findViewById(R.id.gonggaosend);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getActivity(),AddXiaoxiSendActivity.class);
intent.putExtra("from", 2);
startActivity(intent);
}
});
button2=(Button)rootView.findViewById(R.id.gonggaolist);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getActivity(),XiaoxiListActivity.class);
intent.putExtra("from", 0);
startActivity(intent);
}
});
}
}