我是Android新手,我想让这个自定义对话框正常工作,我在showDialog
& removeDialog
表示方法removeDialog(int)
未定义类型new DialogInterface.OnClickListener
。
onReceive
方法:
showDialog(DIALOG_TEXT_ENTRY);
代码:
private static final int MY_PASSWORD_DIALOG_ID = 0;
MediaPlayer mp;
Context context;
protected Dialog onCreateDialog(int id, Context context) {
Dialog dialog = null;
switch(id) {
case MY_PASSWORD_DIALOG_ID:
LayoutInflater factory = LayoutInflater.from(context);
final View textEntryView = factory.inflate(R.layout.password_dialog, null);
final EditText password1 = (EditText) textEntryView.findViewById(R.id.inputPassword);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Enter Password");
builder.setView(textEntryView);
builder.setPositiveButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
removeDialog(MY_PASSWORD_DIALOG_ID);
}
});
AlertDialog passwordDialog = builder.create();
return passwordDialog;
}
return null;
}
答案 0 :(得分:2)
使用
dialog.dismiss();
而不是
removeDialog(MY_PASSWORD_DIALOG_ID);
你无法在BroadcastReceiver中显示一个对话框。
但是,如果你想显示一个弹出屏幕,那么用Dialog主题创建一个活动。
答案 1 :(得分:1)
您也可以使用
builder.setPositiveButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
按钮点击它应该可以正常工作
也可以参考此链接
http://developer.android.com/guide/topics/ui/dialogs.html#AddingButtons
答案 2 :(得分:0)
您应该使用dialog.dismiss();
而不是removeDialog()方法。
答案 3 :(得分:0)
见下文。使用 dismiss();
builder.setPositiveButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dismiss();
}
};
这样称呼showDialog(MY_PASSWORD_DIALOG_ID);
请参阅此Create Custom Dialog tutorial
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
screenDialog = null;
switch(id){
case(ID_SCREENDIALOG):
screenDialog = new Dialog(this);
screenDialog.setContentView(R.layout.screendialog);
bmImage = (ImageView)screenDialog.findViewById(R.id.image);
TextOut = (TextView)screenDialog.findViewById(R.id.textout);
btnScreenDialog_OK = (Button)screenDialog.findViewById(R.id.okdialogbutton);
btnScreenDialog_OK.setOnClickListener(btnScreenDialog_OKOnClickListener);
}
return screenDialog;
}
答案 4 :(得分:0)
使用dialog.dismiss();
请参阅以下链接 http://developer.android.com/guide/topics/ui/dialogs.html