您的位置:首页 > 移动开发 > Android开发

安卓的fragment跳转问题

2017-04-09 22:04 134 查看
最近在做安卓项目,然后就遇到了fragment的问题。之前做项目的代码拿出来看,发现和这一次的做法不太一样,但在编码过程中就出现了一些跳转的问题。之前实现fragment是利用FragmentActivity和PageView实现的,这一次就直接继承Fragment,其实思路还是一样的。实现fragment的方法很多,下面是我这次项目采用的方法:首先在一个Activity中添加几个Fragment,在onCreate()中初始化默认Fragment,同时借助FragmentManager来进行事务提交,最后再添加点击事件。
//添加显示fragment
private void addOrShowFragment(FragmentTransaction transaction, Fragment fragment){
if(currentFragment == fragment)
return;
if (!fragment.isAdded()){
transaction.hide(currentFragment).add(R.id.content_layout,fragment).commit();
}else {
transaction.hide(currentFragment).show(fragment).commit();
}
currentFragment = fragment;
}
//初始化底部tab
private void initTab(int id) {
switch (id){
case 1:
if (homeFragment == null)
homeFragment = new homeFragment();
if (!homeFragment.isAdded()) {
//提交事务
getSupportFragmentManager().beginTransaction().add(R.id.content_layout, homeFragment).commit();
//记录当前Fragment
currentFragment = homeFragment;
//设置底部图片文本变化
ivHome.setImageResource(R.drawable.home_orange);
}
break;
}
}
//点击事件   public void onClick(View v) {          switch (v.getId()){              case R.id.rl_home:                  clickHomeLayout();                  break;          }  
//点击主页后的事件响应      private void clickHomeLayout(){          if (homeFragment == null)              homeFragment = new homeFragment();          addOrShowFragment(getSupportFragmentManager().beginTransaction(),homeFragment);          //设置底部图标和字体颜色          ...    
Q&A1、从一个Fragment如何跳转到一个不包含该Fragment的Activity?      回答:            Intent intent = new Intent(getActivity(), BActivity.class);            startActivity(intent);  2、那么如何从一个activity跳转到指定的Fragment呢?       回答:只需要再跳转时加上intent.putExtra("main",3);即可返回到包含指定Fragment的Activity。                  但是需要再onCreate()中加上以下几句代码:          Intent intent = getIntent();          int id = intent.getIntExtra("main",1);          if (id == 2)              initTab(2);          else if (id == 3)              initTab(3);          else              initTab(1);       简单来说,就是为每个Fragment设定一个编号,然后按固定编号返回即可。这样一来,涉及到Fragment跳转的问题就解决了。  

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android Fragment 跳转