如何通过跳过DialogFragment

时间:2017-09-04 12:40:15

标签: android back-button android-navigation

当我点击后退按钮时,它会转到上一个操作而不是上一个活动

想要做的是:1。活动接下来 - > 2.Activity2 next-> 3.DialogFragment(从DialogFragment中选择用户)next-> Activity2(选定用户)backPressed->活性。

我的目标是:       1.Activity next-> 2.Activity2 next-> 3.DialogFragment(从DialogFragment中选择用户)next-> Activity2(选定用户)backPressed-> 5.DialogFragment backPressed-> Activity

场景是: 当我打开此活动并从OnClick事件中的dialogFragment中选择用户时,如下图所示:

enter image description here

选择用户界面后

是:

enter image description here

当我单击右上角的后退按钮时,它再次打开相同的片段而不是打开上一个活动。 我尝试了很多方法,但无法找到解决方案。 请帮忙。

enter image description here] 3

我的代码:

//

Back button in toolbar
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        toolbar.setTitleTextColor(getResources().getColor(R.color.o2htextOne));
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        final Drawable upArrow = getResources().getDrawable(R.drawable.back_arrow);
        upArrow.setColorFilter(getResources().getColor(R.color.o2htextOne), PorterDuff.Mode.SRC_ATOP);
        getSupportActionBar().setHomeAsUpIndicator(upArrow);
        {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            Intent intent=new Intent();



        }
 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId()==android.R.id.home)
       {

            finish();

        }
      return true;

    }

2 个答案:

答案 0 :(得分:2)

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
upArrow.setNavigationOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            ActivityCompat.finishAfterTransition(AgentCreateIntimation.this);
        }
});

尝试在

的位置使用它
{
   getSupportActionBar().setDisplayHomeAsUpEnabled(true);
   Intent intent = new Intent();
}

答案 1 :(得分:-1)

只需在onBackPressed中检查此条件,然后执行您想要的操作:

@Override
public void onBackPressed() {
   if (dialogObj != null && dialogObj.show()) {
      dialogObj.dismiss();   
   } else {
      //this.finish();
      super.onBackPressed();
   }
}