Java 如何在开始新活动之前等待“确定”按钮
您好。我有一个问题,当单击按钮时,我会显示一个消息框。消息框显示注册确认。之后,我打开一个新活动。 问题是它显示messagebox,然后启动新活动,而不等待单击ok按钮。如何仅在单击ok按钮时显示新活动 下面是我使用的代码Java 如何在开始新活动之前等待“确定”按钮,java,android,android-activity,messagebox,Java,Android,Android Activity,Messagebox,您好。我有一个问题,当单击按钮时,我会显示一个消息框。消息框显示注册确认。之后,我打开一个新活动。 问题是它显示messagebox,然后启动新活动,而不等待单击ok按钮。如何仅在单击ok按钮时显示新活动 下面是我使用的代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
Button btn = (Button)findViewById(R.id.registerButton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), BookingActivity.class);
AlertDialog.Builder dlgAlert = new AlertDialog.Builder(context);
dlgAlert.setMessage("You have successfully Registered.Please Press okay to continue");
dlgAlert.setTitle("Registration");
dlgAlert.setPositiveButton("OK", null);
dlgAlert.setCancelable(false);
dlgAlert.create().show();
startActivity(intent);
finish();
}
});
将代码更改为
@Override
public void onClick(View view) {
// Intent intent = new Intent(getApplicationContext(), BookingActivity.class);
AlertDialog.Builder dlgAlert = new AlertDialog.Builder(context);
dlgAlert.setMessage("You have successfully Registered.Please Press okay to continue");
dlgAlert.setTitle("Registration");
dlgAlert.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(getApplicationContext(), BookingActivity.class);
startActivity(intent);
}
});
dlgAlert.setCancelable(false);
dlgAlert.show();
不要在那里开始活动。删除行
startActivity(intent)
和finish()
。你需要这样做
builder.setPositiveButton(R.string.label_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(your arguments here)
startActivity(intent);
}
});
builder.show();
因此,您需要做的就是将该行更改为setPositiveButton
,并按照上面给出的方式使用
根据您的风格,您不是在对话框中设置操作,而是在显示对话框的按钮上设置操作。试试这个
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
Button btn = (Button)findViewById(R.id.registerButton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder dlgAlert = new AlertDialog.Builder(context);
dlgAlert.setMessage("You have successfully Registered.Please Press okay to continue");
dlgAlert.setTitle("Registration");
dlgAlert.setPositiveButton("OK", null);
dlgAlert.setCancelable(false);
dlgAlert.create().show();
dlgAlert.setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(getApplicationContext(), BookingActivity.class);
startActivity(intent);
}
});
}
});
为
确定添加侦听器
,单击并在其中执行您想要的操作。对不起,我怀疑这是否正确。你在onClick中有dlgAlert,因此不能在外部使用它。我已经编辑了我的ans。现在可以了吗?如果我做错了什么,请指出。谢谢!专门用来指出错误的。这就是我们学习的方式:)好吧,我是android新手,所以我很挣扎。我在想,我不能使用一些if语句来查看是否单击了“确定”按钮,并将startactivity放入该if语句中。因为我不理解您的代码,DialogInterface.OnClickListener中的代码仅在用户单击按钮时才会触发。您无需检查单击了哪个按钮。setPositiveButton将检查OK,setNegativeButton将检查Cancel。那么,什么是builder?它还说无法解析DialogInterface。我现在很困惑。*我解决了这个问题。让我试着运行它,看看