fragment中能不能这么写AlertDialog.Builder m=new AlertDialog.Builder(getActivity());
时间: 2024-02-21 09:59:18 浏览: 126
AlertDialog.Builder多种不同用法
3星 · 编辑精心推荐
可以这么写,但是需要注意几点:
1. 必须在 `onCreateDialog()` 方法中创建 `AlertDialog` 对象,而不能在 `onCreateView()` 或者其他方法中创建。
2. 如果你想在 `onCreateDialog()` 中使用 `getActivity()` 方法获取 Activity,那么需要在 Fragment 中调用 `setShowsDialog(true)` 方法,来表示 Fragment 自己管理 Dialog。
例如,下面是一个典型的 AlertDialog 在 Fragment 中的实现:
```
public class MyFragment extends Fragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Title")
.setMessage("Message")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User clicked OK button
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
// Create the AlertDialog object and return it
return builder.create();
}
}
```
阅读全文