1

J'ai 2 activités, je veux montrer la boîte de dialogue d'alerte quand je passe de l'activité B à l'activité A.Comment afficher la boîte de dialogue Alerte lorsque je passe d'une activité à une autre?

C'est ainsi que je passe d'une activité à l'autre.

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

Maintenant que j'atteins Activity_A, je souhaite afficher la boîte de dialogue d'alerte ci-dessous.

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(); 
} 

Où devrais-je mettre cette boîte de dialogue?

ÉDITÉE MA QUESTION: -

Voici My Flow

Activité A> Activité B (10 fragments)> Activité A

Maintenant, quand je passer de l'activité B à l'activité A, après le lancement de l'activité A, je souhaite afficher une boîte de dialogue d'alerte. Remarque: Uniquement lorsque je passe de l'activité B à l'activité A.

+0

si vous voulez afficher la boîte de dialogue dans la nouvelle activité lorsqu'elle commence, pourquoi ne pas montrer la boîte de dialogue dans le onCreate/onResume de l'activité de destination? – kimchibooty

+0

L'activité A est mon écran d'atterrissage sur mon application. Donc, si je le mets dans onCreate/onResume alors la boîte de dialogue sera appelée chaque fois que je lance mon application. – DroidDev

+0

"Donc, si je le mets dans onCreate/onResume alors la boîte de dialogue sera appelée chaque fois que je lance mon application" - oui ce sera show. Si vous souhaitez afficher une seule fois/première utilisation, utilisez la valeur booléenne SharedPreference enregistrée pour déterminer. – james

Répondre

0

finalement trouvé un moyen, Merci pour les réponses. La raison pour laquelle j'ai toujours eu tort auparavant, c'est que j'utilisais startActivtyResult dans Activity_B et que j'essayais de lancer une boîte de dialogue Alert. De cette façon

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

Ceci est la façon correcte:

De Activity_A j'ai appelé Activity_B cette façon:

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

Et dans onActivityResult de Activity_A:

@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(); 
} 
     } 

Et dans Activity_B I « M appeler juste Activity_A cette façon:

Intent intent = new Intent(); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     setResult(Activity_A.RESULT_OK, intent); 

     finish(); 
0

Vous pouvez utiliser Activity#getCallingActivity pour déterminer si l'activité A a été ouverte par l'activité B et encapsuler votre logique Dialog autour de cette vérification.

Cependant, cela nécessite d'utiliser startActivityForResult pour ouvrir l'activité A.

+0

Merci, je vais essayer de vous le faire savoir. – DroidDev

0

Je crois que c'est ce que vous cherchez. Remplacer la méthode au début de l'activité que vous souhaitez afficher la boîte de dialogue. J'espère que cela aide.

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

Pour moi, je tout simplement mis comme ça alors la boîte de dialogue sortira

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(); 
    } 
    }