Java 执行不';不要等待Alertdialog.Disclose()发出警报
我正在开发一个Android应用程序,我有一个问题: 如何使执行等待,直到用户从Java 执行不';不要等待Alertdialog.Disclose()发出警报,java,android,Java,Android,我正在开发一个Android应用程序,我有一个问题: 如何使执行等待,直到用户从警报对话框中选择一个选项? 这是我的代码: if (mPerson== null) { mPerson = new Person(); AlertDialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMes
警报对话框
中选择一个选项?
这是我的代码:
if (mPerson== null)
{
mPerson = new Person();
AlertDialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.dialog_message_select))
.setTitle(getString(R.string.dialog_title_attention));
builder.setPositiveButton(R.string.male, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
mPerson.setGender(Gender.male);
dialog.dismiss();
}
});
builder.setNegativeButton(R.string.female, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int arg1)
{
mPerson.setGender(Gender.female);
dialog.dismiss();
}
});
dialog = builder.create();
dialog.show();
}
// TODO: Show data.
getWidgetsRefereces();
customizeLayout();
loadSpinnerValues();
在dialog.disclose()之后
我必须执行以下操作:
// TODO: Show data.
getWidgetsRefereces();
customizeLayout();
loadSpinnerValues();
请执行以下操作:
AlertDialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.dialog_message_select))
.setTitle(getString(R.string.dialog_title_attention));
builder.setPositiveButton(R.string.male, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
mPerson.setGender(Gender.male);
dialog.dismiss();
postSelection();
}
});
builder.setNegativeButton(R.string.female, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int arg1)
{
mPerson.setGender(Gender.female);
dialog.dismiss();
postSelection();
}
});
dialog = builder.create();
dialog.show();
}
选择完成后调用此方法
public void postSelection(){
getWidgetsRefereces();
customizeLayout();
loadSpinnerValues();
}
考虑基于事件的执行。如果您想在按下按钮时执行一些代码,请将其连接起来执行。将有问题的代码放在一个可以随时调用的方法中
一般来说,在Android上编程时,需要遵循平台基于事件的特性。传统的程序性顺序思维会让你陷入死胡同。你必须像这样定制你的对话框界面。 您应该在对话框界面上使用onDismissListener。不要使其匿名
private class MyDialogInterfaceMethod implements DialogInterface.OnClickListener,DialogInterface.OnDismissListener
{
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//when user click a button
}
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
//put your code here
}
}
而不是像这样在警报对话框中使用它
builder.setNegativeButton("CANCEL",new MyDialogInterfaceMethod ());
对话框的
discouse()
之后您必须执行什么?我已经更新了我的问题。您还可以对您的AlertDialog实现OnDismissListener
,并将这些函数放入其中。查看+1编辑问题名称和内容,他可以将这些方法放在dialog之后;