我练习练习。需要创建对话框并在两个对话框之间传递信息。
主要活动和展示对话框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();
}
答案 0 :(得分:0)
您可以添加showDialog3()
方法的版本,该版本采用String nombre
参数(假设showDialog3()
的结构与showDialog2()
和{{1}大致相同}}):
showDialog1()