0

ナビゲーション ([戻る] ボタン) を介してあるアクティビティから別のアクティビティに切り替えると、AlertDialog が表示されるという問題に直面しています。

シナリオは次のとおりです。 1. アプリケーションが実行されており、アプリケーションの 2 ページ目にいます。2. [戻る] ボタンを押しますが、同時に 2 ページ目で 1 つのシナリオが実行され、AlertDialog が画面に表示されます。3. 戻るボタンを押してメイン画面にリダイレクトし、ユーザー入力なしで AlertDialog を閉じます。

すでにこれを使用していますが、私にはうまくいかないはずです。

1.  Intent.FLAG_ACTIVITY_NEW_TASK
2. onRetainNonconfigurationInstance() & getLastNonConfigurationInstance()

ナビゲートすると、ホームページ(MainActivity)に同じAlertDialogを表示したい。私はすべてのページからホームページまでこれを行いたいと思っています。

あらゆる種類のアイデアと提案をお持ちの方。

ありがとう、

4

4 に答える 4

1

ステップ 1: SharedPreferences を 2 番目のアクティビティ内に配置します

SharedPreferences myPrefs = getSharedPreferences(
                                "myPrefs", 0);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("ALERT","YES");
prefsEditor.commit();

ステップ2:

HomeActivity の OnCreate 内部コードの下に記述

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

     // Getting ALERT from Sharedpreference 
    myPrefs = getSharedPreferences("myPrefs", 0);
    ALERT = myPrefs.getString("ALERT", "NO");
         if(ALERT.equals("YES"){
           // Write your Code for Showing Alert Dialogue
           }else{
        setContentView(R.layout.login);
            // Write rest og the Code for Your Home Acitivity
          }

ここでは、AlertDialogue の終了後に HomeActivity の contentview を設定する必要があります。

それがあなたを助けることを願っています。

于 2013-01-10T05:32:18.037 に答える
0

これを試して..

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
        final Dialog CloseDialog = new Dialog(Sample.this);
        CloseDialog.setTitle("Alert");
        CloseDialog.setContentView(R.layout.exit_dialog_box);
        ExitButton = (Button) CloseDialog.findViewById(R.id.ExitButton);
        CloseExitDilog = (Button) CloseDialog
                .findViewById(R.id.CloseExitDialog);

        ExitButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                     ....../////////

            }
        });

        CloseExitDilog.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                ///
            }
        });
        CloseDialog.show();
    }
于 2013-01-10T06:00:05.197 に答える
0

ユーザーが 2 番目のアクティビティを離れる前にユーザー インタラクションを取得したい場合は、AlertDialog を 2 番目のアクティビティ内onStop()または2 番目onDestroy()のアクティビティに配置する必要があります。または、 2 番目のアクティビティが閉じられ、メイン アクティビティにいる後に AlertDialog を表示する場合は、AlertDialogを主な活動。(ただし、このためには、を使用してメイン アクティビティから 2 番目のアクティビティを開始する必要があります)onActivityResult()startActivityForResult()

于 2013-01-10T05:26:38.403 に答える
0

2 番目のアクティビティ自体にアラート ダイアログを表示する場合は、MainActivity を起動する前に、次の概念を使用します。

    @Override
public void onBackPressed() {

    showAlertDialog(SecondActivity.this);

}

    private void showAlertDialog(Context mCtx) {
    // TODO Auto-generated method stub
    AlertDialog.Builder builder = new AlertDialog.Builder(mCtx);
    builder.setCancelable(false);
    builder.setTitle("Title");
    builder.setMessage("Message text !!");
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            finish();
        }
    });
    builder.create().show();        
}
于 2013-01-10T05:35:04.067 に答える