lup*_*oem 62 android android-alertdialog
我创建了一个正常工作的AlertDialog.它正在消失,如果我按下:
1)
使用鼠标退出键盘按钮或2)后退按钮
为了使其在上述条件下保持聚焦,我在构建时添加了".setCancelable(false)"语句.但是,我仍然看到对话消失了.问题出在哪儿?请帮忙.
代码添加:
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setCancelable(false)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doNegativeClick();
}
}
)
.create();
Run Code Online (Sandbox Code Playgroud)
环境:XP Professional上的Android 4.0.
San*_*ndy 122
是这个你完整的代码?然后请更改您的代码以进行setCancelable(false)此类设置
void showDialog() {
DialogFragment newFragment = MyAlertDialogFragment.newInstance(
R.string..alert_dialog_two_buttons_title);
newFragment.setCancelable(false);
newFragment.show(getFragmentManager(), "dialog");
}
Run Code Online (Sandbox Code Playgroud)
另一个工作示例:
步骤1
创建类:
public class DialogActivity extends android.app.DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.myMessage);
setCancelable(false);
return builder.create();
}
}
Run Code Online (Sandbox Code Playgroud)
第2步
添加方法到您的Activity:
private boolean showDialog() {
FragmentManager manager = getFragmentManager();
DialogActivity dialogActivity;
dialogActivity = new DialogActivity();
dialogActivity.show(manager, "DialogActivity");
return true;
}
Run Code Online (Sandbox Code Playgroud)
第3步
showDialog()需要显示对话框时调用
dialog.setCanceledOnTouchOutside(false);
Run Code Online (Sandbox Code Playgroud)
setCanceledOnTouchOutside(boolean)
设置在窗口边界之外触摸时是否取消此对话框。如果设置为true,则将对话框设置为可取消(如果尚未设置)。
| 归档时间: |
|
| 查看次数: |
54787 次 |
| 最近记录: |