1

我有2個活動,當我從活動B移動到活動A時,我想要顯示提醒對話框。如何從一項活動轉到其他活動時顯示警報對話框?

這就是我從一個活動轉到其他活動的方式。

Intent intent = new Intent(Activity_B.this, 
    Activity_A.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent);     

現在當我到達Activity_A時,我想在下面顯示警報對話框。

AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    builder.setMessage(context.getString(R.string.xxxx)); 
    builder.setPositiveButton(context.getString(R.string.ok_button), new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 
    alertDialog = builder.create(); 
    alertDialog.show(); 
} 

我應該在哪裏放這個對話框?

編輯我的問題: -

這裏是我的流程

活動A>活動B(10個片段)>活動甲

現在,當我從活動B移動到活動A,活動A啓動後,我想顯示警報對話框。 注意:只有當我從活動B移動到活動A時。

+0

,爲什麼不顯示在目標活動的onCreate /的onResume對話? – kimchibooty

+0

活動A是我的應用程序登陸屏幕。所以,如果我把它放在onCreate/onResume那麼每次啓動我的應用程序時都會調用對話框。 – DroidDev

+0

「所以如果我把它放在onCreate/onResume那麼每次啓動我的應用程序時都會調用對話框」 - 是的,它會顯示。如果只想顯示一次/首次使用保存的SharedPreference布爾值來確定。 – james

回答

0

終於找到了一種方法,感謝您的答案。

我以前總是錯誤的原因是我在Activity_B中使用startActivtyResult,並試圖在其中啓動Alert對話框。這樣

Intent intent = new Intent(Activity_B.this, 
    Activity_A.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivityForResult(intent,2); 

這是正確的做法:

從Activity_A我叫Activity_B這樣:

Intent intent = new Intent(Activity_A.this, Activity_B.class); 
       map.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivityForResult(intent, 2); 

而且在Activity_A的OnActivityResult:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == 2) { 
      if (resultCode == Activity.RESULT_OK) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(context); 
      builder.setMessage(context.getString(R.string.xxxx)); 
      builder.setPositiveButton(context.getString(R.string.ok_button),   new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 
      alertDialog = builder.create(); 
      alertDialog.show(); 
} 
     } 

並在Activity_B我「M只是打電話Activity_A這樣:

如果你想顯示在對話框中新的活動啓動時
Intent intent = new Intent(); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     setResult(Activity_A.RESULT_OK, intent); 

     finish(); 
0

我相信這是你在找什麼。覆蓋您希望顯示對話框的活動開始時的方法。希望能幫助到你。

@Override 
public void onStart(){ 
    super.onStart(); 
    //Your Dialog here 
} 
2

對於我來說,我只是簡單地把這樣便對話框會出來

public class AddItem extends Activity { 
    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      setContentView(R.layout.activity_add_item); 

      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setMessage(context.getString(R.string.xxxx)); 
      builder.setPositiveButton(context.getString(R.string.ok_button), new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 
    alertDialog = builder.create(); 
    alertDialog.show(); 
    } 
    } 
相關問題