Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:返回到上一个对话框活动_Android_Android Intent_Dialog - Fatal编程技术网

Android:返回到上一个对话框活动

Android:返回到上一个对话框活动,android,android-intent,dialog,Android,Android Intent,Dialog,我正在制作一个校园地图应用程序。所以我有一个对话框,它是一个学院的系列表,例如EnggDeptDialog.class。。。如果我从列表中打开一个,例如土木工程部/CeFacultyListView.class,它将显示该部门的学院列表,然后当我点击后退按钮时,我希望应用程序返回到上一个活动,即EnggDeptDialog.class。明白我的意思了吗 我似乎没有从这里找到答案,所以我问这个。我尝试过这里的代码,但没有真正起作用 下面是我使用的代码 @Override public boolea

我正在制作一个校园地图应用程序。所以我有一个对话框,它是一个学院的系列表,例如EnggDeptDialog.class。。。如果我从列表中打开一个,例如土木工程部/CeFacultyListView.class,它将显示该部门的学院列表,然后当我点击后退按钮时,我希望应用程序返回到上一个活动,即EnggDeptDialog.class。明白我的意思了吗

我似乎没有从这里找到答案,所以我问这个。我尝试过这里的代码,但没有真正起作用

下面是我使用的代码

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    if (item.getItemId() == R.id.menu_legal) {
        startActivity(new Intent(this, EnggDean.class));
        return true;
    }
    if (item.getItemId() == R.id.back){
        onBackPressed();
    }
    return super.onOptionsItemSelected(item);
}

public void onBackPressed() {    
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);
}
但每次我点击后退按钮,它就会从应用程序中消失

这是我的对话框活动代码:

public class EnggDeptDialog extends DialogFragment{

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle(R.string.opt)
           .setItems(R.array.enggdept_options, new DialogInterface.OnClickListener(){
               public void onClick(DialogInterface dialog, int which) {
                   switch(which){
                   case 0:
                       Intent aefaculty = new Intent("com.android.cmumap.AFLV");
                       startActivity(aefaculty);
                       break;
                   case 1:
                       Intent cefaculty = new Intent("com.android.cmumap.CFLV");
                       startActivity(cefaculty);
                       break;
                   case 2:
                       Intent eefaculty = new Intent("com.android.cmumap.EFLV");
                       startActivity(eefaculty);
                       break;
                   case 3:
                       Intent itfaculty = new Intent("com.android.cmumap.IFLV");
                       startActivity(itfaculty);
                       break;
                   case 4:
                       Intent mefaculty = new Intent("com.android.cmumap.MFLV");
                       startActivity(mefaculty);
                       break;
                   }
               }
});
return builder.create();
}
}
这就是我所说的对话活动

EnggiDeptDialog deptdialog;
deptdialog = new EnggDeptDialog();
deptdialog.show(getFragmentManager(), "Departments");

您需要做的只是删除public void onBackPressed函数

活动会自动添加到“堆栈”中,每当用户点击设备上的“后退”按钮时,Android就会从堆栈中弹出最上面的活动。这是默认行为


因此,无需手动执行此操作。

以下是关于如何在Android WebView中编写后退按钮的类似问题的答案


你试了什么?发布一些代码,否则这里没有人能够/愿意帮助你。@Merlevede我已经编辑了上面的问题。但是你不认为当用户回击,android弹出对话框活动时,这是另一回事吗?因为有一次,我按下了后退按钮,但它突然跳出到主标记。对话活动没有弹出。@Banananadss对不起,我没有听你的。“主要标记”是什么?这是一个地图应用程序。。我在指一个地图标记。。当我点击后退按钮时,它跳过对话活动并返回地图。我想我开始得到它了。所以当你点击后退按钮时,你想返回对话框,而不是地图,对吗?如果是,你能分享更多的对话代码吗?是的!这就是我想说的。好啊我将首先编辑上面的问题。我尝试了此操作,但它有一个错误,即keyCode和event无法解析为变量。。