如何在Android上的Dialogs之间传递数据?

时间:2016-01-27 02:08:57

标签: android dialog

我练习练习。需要创建对话框并在两个对话框之间传递信息。

主要活动和展示对话框1

public class MainActivity extends AppCompatActivity {
Button b1, b2;
String nombre="";

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);
    instancias();
    b1.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            showDialog1();
        }

    });

}

private void instancias() {
    b1 = (Button) findViewById(R.id.b1);
    b2 = (Button) findViewById(R.id.b2);

}


private void showDialog1() {
    new AlertDialog.Builder(this)
            .setTitle("Diálogo 1")
            .setMessage("Bienvenido al examen, ¿Estás seguro de continuar?")
            .setCancelable(false)
            .setPositiveButton("Si", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    showDialog2();
                    dialog.dismiss();
                }
            })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    setContentView(R.layout.dialogo1);

                }
            }).create().show();
}

现在我向你展示主要活动的对话框2,第一个和第二个它在MainActivity中的实现。我想创建一个带有第二个(dialog2)信息的dialogo3。

private void showDialog2() {
    new AlertDialog.Builder(this)
            .setTitle("Diálogo 2")
            .setView(R.layout.dialogo1)
            .setCancelable(false)
            .setPositiveButton("CONTINUAR", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Bundle args = new Bundle();
                    args.putString("nombre", nombre);
                    showDialog3(nombre);

                    dialog.dismiss();
                }
            })
            .setNegativeButton("CANCELAR", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    dialog.dismiss();
                }
            }).create().show();
}

我分享dialog3,我有打印名称的问题:

 private void showDialog3(final String nombre) {
    new AlertDialog.Builder(this)
            .setTitle("Diálogo 3")
            .setMessage("blabla " + nombre + " bla")
            .setView(R.layout.dialogo1)
            .setCancelable(false)
            .setPositiveButton("CONTINUAR", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {


                    dialog.dismiss();
                }
            })
            .setNegativeButton("CANCELAR", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    dialog.dismiss();
                }
            }).create().show();
}

1 个答案:

答案 0 :(得分:0)

您可以添加showDialog3()方法的版本,该版本采用String nombre参数(假设showDialog3()的结构与showDialog2()和{{1}大致相同}}):

showDialog1()