2014-09-20 109 views
1

美好的一天。我遇到问题,单击按钮时显示一个消息框。简单的消息框显示注册确认。之后,我打开新的活动。 问题是,它显示消息框,然后启动新的活动,而不用等待ok按钮被点击。如何在点击确定按钮后只显示新的活动。如何在开始新活动之前等待好的按钮

下面是我使用的代码。

@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(); 
+0

添加'listener'为'OK'点击里面那个你想要做什么。 – Rustam 2014-09-20 10:42:01

回答

1

不要启动活动在那里。删除行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并使用如上面给出。

根据您的风格,您不是将操作设置为对话框,而是设置显示对话框的按钮。

+0

好吧,我是新来的机器人,所以我挣扎。思考,不能我有一些if语句,看看是否点击确定按钮,并把该startactivity如果statement.Because我不明白你的代码 – user2893681 2014-09-20 10:46:19

+0

里面的代码DialogInterface.OnClickListener只会在用户点击按钮时触发。 – 2014-09-20 10:49:58

+0

你不需要检查哪个按钮被点击。 setPositiveButton将检查确定,setNegativeButton将检查取消 – Nabin 2014-09-20 10:52:44

1

试试这个

@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); 
       } 
     }); 
    } 
}); 
+0

对不起,但我怀疑这是正确的。您在onClick中有dlgAlert,因此无法在外部使用它。 – Nabin 2014-09-20 10:45:26

+0

我编辑了我的答案。现在好吗?请指出我是否做错了 – 2014-09-20 10:57:37

+0

从我+1 :-)。 – Nabin 2014-09-20 11:28:08

相关问题