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