我有一个 MainActivity,我在这里发布部分代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.action_quit:
moveTaskToBack(true);
return true;
case R.id.action_help:
//display the help activity
Intent myIntent = new Intent( this, ShowHelp.class);
startActivityForResult(myIntent, 0);
return true;
case R.id.action_about:
//display the about window
//aboutApp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void aboutApp() {
// custom dialog
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.about);
dialog.setTitle("About TollCulator");
TextView textViewAbout = (TextView) dialog.findViewById(R.id.tvContents);
textViewAbout.setText("About: ");
textViewAbout.append("\n\tTollCulator - Toll Calculator");
textViewAbout.setMovementMethod(new ScrollingMovementMethod());
Button btnCloseIt = (Button) dialog.findViewById(R.id.btnOk);
// if button is clicked, close the custom dialog
btnCloseIt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
ImageView iv1 = (ImageView) dialog.findViewById(R.id.imgFB);
iv1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Uri uri = Uri.parse("https://www.facebook.com/PagesByZ"););
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
dialog.cancel();
startActivity(intent);
}
});
dialog.show();
}
ShowHelp.class 部分代码在这里,它是一个独立的活动:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case 16908332:
Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivityForResult(myIntent, 0);
//finish();
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
// do something on back.
Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivityForResult(myIntent, 0);
//finish();
return;
}
现在,当我action_help
从菜单中选择时,它会打开 ShowClass Activity,我可以按下后退按钮,它会将我带回到 MainActivity,没有任何问题。
现在,如果我选择action_about
弹出关于对话框,如果我单击对话框中的图标,则会弹出以下内容:
此时如果我决定按 BACK,而不是关闭弹出窗口并显示我的 About 对话框,我只是被带到主屏幕。
在 ShowClass 中评论该finish();
方法允许我从“使用完成操作”中单击 BACK 按钮,但不是将我带到 MainActivity,而是从那里到 ShowClass,我可以再次按下 Back 按钮以返回 MainActivity。因此,只要我action_help
先选择,按返回就会让我回到 ShowHelp。
当从 About 对话框中弹出 Complete action using 时,我设置了一个 Log,它处于 onPause() 状态,如果我一开始没有运行 ShowHelp,我的 App 直接进入 onStop() 和 onDestroy()。
请帮我解决问题。
为了测试它,我创建了一个没有 ShowHelp 类的演示,只有对话框,通过按返回按钮,使用对话框的 Complete actiong 关闭,然后再次按返回关闭 About 对话框。所以我不确定发生了什么。