5

I am trying to add an alertdialog within an alertdialog.But not able to see the second alertdialog..please help me here is my code shown

AlertDialog alertDialog = new AlertDialog.Builder(myclass.this).create(); alertDialog.setTitle("First alert"); alertDialog.setMessage("first alert press"); alertDialog.setButton("ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // here you can add functions dialog.cancel(); AlertDialog alertDialog1 = new AlertDialog.Builder(myclass.this).create(); alertDialog1.setTitle("second alert dialog"); alertDialog1.setMessage("second alert dialog details"); alertDialog1.setButton("Scan Another", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { }}); } 
3
  • That is bad UI behaviour. Use a Toast. Commented Sep 28, 2011 at 8:11
  • but i need to perform two different action Commented Sep 28, 2011 at 8:13
  • This is by design so that suck kind of UI behaviour is not encouraged. Why don't you expand the first alert dialog to include you actions? Or make the first Alert dialog, an activity. Commented Sep 28, 2011 at 8:20

4 Answers 4

3

It is gonna be a late answer but you can create an AlertDialog inside onClickListener just like this:

public void onClick(DialogInterface dialog, int which) { if (options[which] == "Manage") { //Do smtg } else { dialog.dismiss(); final AlertDialog alert; AlertDialog.Builder dialog2 = new AlertDialog.Builder(CategoryPage.this); alert = dialog2.create(); alert.setTitle("Delete " + title + "?"); alert.setMessage("Are you sure you want to delete this category?"); alert.setButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(CategoryPage.this, "YESS", Toast.LENGTH_LONG).show(); } }); alert.setButton2("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub alert.dismiss(); } }); alert.show(); } } 
Sign up to request clarification or add additional context in comments.

Comments

1

I found the way might be it will be helpful for someone so thats why i am sharing:

//2nd Alert Dialog AlertDialog.Builder alertDialogBuilderSuccess = new AlertDialog.Builder( context); alertDialogBuilderSuccess.setTitle("TopUp Success"); // set dialog message alertDialogBuilderSuccess .setMessage( "You voucher is printed, please go to the cashier.") .setCancelable(false) .setIcon(R.drawable.ic_launcher2) .setPositiveButton("Confirm", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int id) { finish(); } }); // create alert dialog final AlertDialog alertDialogSuccess = alertDialogBuilderSuccess.create(); ////////////////////////////////// //1st Alert AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( context); alertDialogBuilder.setTitle("TopUp Request"); // set dialog message alertDialogBuilder .setMessage( "Please confirm: " + vendor_name + ", " + tvLoadAmount.getText()) .setCancelable(false) .setIcon(R.drawable.ic_launcher2) .setPositiveButton("Confirm", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int id) { //calling the second alert when it user press the confirm button alertDialogSuccess.show(); } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int id) { dialog.cancel(); } }); // create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show(); 

Comments

1

AlertDialogs aren't supposed to let another AlertDialog to be open. If it is really what you want, then change your main AlertDialog to Dialog. This way you can manually add the buttons and functionality you require for manage the secondary AlertDialog

Comments

0
import android.widget.TextView; import android.widget.Button; import android.view.View; import android.content.DialogInterface; public class MainActivity extends AppCompatActivity { Button click; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); click=(Button)findViewById(R.id.btnId); click.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { txtSubmit(); } }); } protected void txtSubmit(){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("This is alert title"); builder.setMessage("This is message for Alert dialog"); builder.setPositiveButton("Yup", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this); builder1.setTitle("This is alert title inside"); builder1.setMessage("This is message for Alert dialog inside"); builder1.show(); } }); builder.show(); } } 

The txtSubmit function calling from the onClick event listener. Also for the second alert dialog need to open I have to pass

AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this); 

Here, we have to bind the this event using className

When we click on the yup button in the first dialog,it shows the second dialog that insides in the first one

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.