如何处理片段和活动中的反压

时间:2016-07-22 05:05:05

标签: android android-fragments android-activity tabs onbackpressed

enter image description here我有标签片段,其中包含3个片段:片段A片段B片段c。 1)现在点击片段A中的项目活动打开。在这种情况下如何处理后退和后退按钮。

2)现在点击片段C中的项目活动打开,其中包含3个包含片段X片段y片段z的选项卡。在这种情况下如何处理背压和后退按钮。

有人可以帮我吗???

2 个答案:

答案 0 :(得分:0)

将此代码用于默认后退按钮:

@Override
    public void onBackPressed() {
            super.onBackPressed();
            this.finish();
    }

对于背面图片按钮,只需使用finish()

中的onClickListener();即可
Button backButton = (Button)this.findViewById(R.id.back);
backButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
    finish();
  }
});

如果之前的活动已经关闭,请使用意图进行导航:

 Button backButton = (Button)this.findViewById(R.id.back);
    backButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {

       Intent i = new Intent(currentActivity.this, previousActivity.class);     
       startActivity(i);
       finish(); 

      }
    });

答案 1 :(得分:0)

first make method on activity where the fragment is loaded. for example i load the fragment on activity NavigationDrawer.class

public Fragment getVisibleFragment(){
    FragmentManager fragmentManager = NavigationDrawer.this.getSupportFragmentManager();
    List<Fragment> fragments = fragmentManager.getFragments();
    if(fragments != null){
        for(Fragment fragment : fragments){
            if(fragment != null && fragment.isVisible())
                return fragment;
        }
    }
    return null;
}

then, call the method

@Override
public void onBackPressed() {

       //call the method
    if (getVisibleFragment()!=null) {

        //check which current visible fragment
        String nameFragment = getVisibleFragment().toString();
        if (nameFragment.contains("nameFragmentA")) {
            //your action A
         }else if(nameFragment.contains("nameFragmentB")){
            //your action B
         }else{
           //another action
         }

       }
}

It can apply to questions 1 and 2. Hope this help you!