0

我在通過導航(後退按鈕)從一個活動切換到另一個活動時顯示AlertDialog時遇到問題。如果我從一個活動切換到另一個活動,在屏幕上顯示AlertDialog

情景是這樣的: 1.我的應用程序正在運行,並且正在應用程序的第二頁。 2.我按下後退按鈕,但同時進行第二頁一個場景執行& AlertDialog在屏幕上打開。 3.我已經按回我的按鈕我重定向到主屏幕& AlertDialog關閉無任何用戶輸入。

已經使用過這個,但它不應該爲我工作。

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

我想在主頁上顯示相同的AlertDialog(MainActivity),如果我瀏覽它。 我想爲我的所有網頁做一個回家。

任何人有任何想法&建議。

感謝,

+0

你顯示呼叫者活動快訊?在被叫活動上顯示。並在此分享您的代碼。 –

回答

0

如果你想獲得用戶交互之前用戶離開第二個活動,則你必須把AlertDialog在onStop()第二屆活動的onDestroy()或者如果你想顯示AlertDialog後您的第二個活動被關閉並且您處於主要活動狀態,那麼您必須將AlertDialog放入onActivityResult()主要活動。 (但是,對於這一點,你必須使用startActivityForResult()開始從主要活動第二次活動)

1

第一步:把你的SharedPreferences你的第二個活動

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

第二步裏面:

您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設置內容視圖。

希望它能幫助你。

0

,如果你想顯示警告對話框上你的第二活動本身,開展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();   
} 
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(); 
    } 
相關問題