更新时间:2023-01-24 13:03:04
您必须调用 show()
方法而不是 create()
。
注意: create()
方法仅创建 Dialog
的实例,但不会显示它的实例。
一个建议:
您可以创建返回 Dialog
的方法,如下所示:
公共对话框createNewDialog(int type){
AlertDialog dlg = null;
开关(类型){
case SOME_CONSTANT:
dlg = new AlertDialog.Builder(ActivityName.this / this)
.setTitle( Title)
.setMessage (消息)
.setPositiveButton(是,空)
.create();
休息时间;
}
}
然后您可以将其称为:
createNewDialog(SOME_CONSTANT).show();
和您的对话框
将显示。 / p>
尤其是在您这种情况下,您可以使用以下代码段实现目标:
@Override
public void onClick(View v){
// TODO自动生成的方法存根
开关(v.getId()){
case R.id .bAdd:
createNewDialog(SOME_CONSTANT).show();
休息时间;
}
}
希望它会有所帮助。
I use following code:
public class Settings extends Activity implements OnClickListener {
private Activity activity;
private AlertDialog.Builder builder;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.settings);
Button bAdd = (Button) findViewById(R.id.bAdd);
bAdd.setOnClickListener(this);
activity = this;
builder = new AlertDialog.Builder(activity);
builder.setMessage("message")
.setTitle("title");
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bAdd:
AlertDialog dialog = builder.create();
break;
}
}
}
But for some reason my popup doesn't appear and does nothing at all.. Any ideas on what is causing this malfunction? Thanks!
You have to call show()
method instead of create()
.
Note: create()
method only creates instance of Dialog
but it won't show its.
One suggestion:
You can create method that returns Dialog
like this:
public Dialog createNewDialog(int type) {
AlertDialog dlg = null;
switch (type) {
case SOME_CONSTANT:
dlg = new AlertDialog.Builder(ActivityName.this / this)
.setTitle("Title")
.setMessage("Message")
.setPositiveButton("Yes", null)
.create();
break;
}
}
Then you can call it as:
createNewDialog(SOME_CONSTANT).show();
and your Dialog
will be shown.
Especially in your case you can reach your goal with this snippet of code:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bAdd:
createNewDialog(SOME_CONSTANT).show();
break;
}
}
Hope it helps.