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 アクティビティが開き、戻るボタンを押すと問題なく MainActivity に戻ります。
ここで、[バージョン情報] ダイアログを選択action_about
するとポップアップが表示され、ダイアログ内のアイコンをクリックすると、次のポップアップが表示されます。
この時点で、ポップを閉じて [About] ダイアログを表示するのではなく、[戻る] を押すと、ホーム画面に移動します。
ShowClassのfinish();
メソッドにコメントを付けると、[Complete action using] から [戻る] ボタンをクリックできますが、MainActivity に移動する代わりに、そこから ShowClass に移動し、[戻る] ボタンをもう一度押して MainActivity に戻ることができます。そのため、最初に選択している限り、action_help
[戻る] を押すと ShowHelp に戻ります。
[About] ダイアログから [Complete] アクションがポップアップ表示されたら、ログを設定しました。これは onPause() 状態で、最初に ShowHelp を実行しなかった場合、アプリは直接 onStop() と onDestroy() に移動します。
問題を解決するのを手伝ってください。
それをテストするために、ShowHelp クラスを使用せずにダイアログのみを含むデモを作成しました。[戻る] ボタンを押すと、[ダイアログを使用して完了] アクションが閉じ、もう一度 [戻る] を押すと [バージョン情報] ダイアログが閉じます。だから私は何が起こっているのか分かりません。