【发布时间】:2014-12-31 20:01:12
【问题描述】:
我有一个 DialogFragment 类。每次显示时我都必须设置监听器(我的应用中有多个案例)。
但是当我旋转屏幕时,mListener 变为 null,并且当我单击按钮时会出现 NullPointerExcpetion。我无法在活动中实现监听器,因为该对话框有几个案例,每个案例都有不同的操作。
CustomDialog 类:
MyDialogListener mListener;
public void show(FragmentManager fm, MyDialogListener listener) {
mListener = listener;
super.show(fm, "MyDialog");
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setTitle("Title")
.setPositiveButton(android.R.string.ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
mListener.onDialogPositiveClick();
// NullPointerException after a screen rotate
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
}
活动类:
public void showMyFirstDialog() {
new CutsomDialog().show(getFragmentManager(), mFirstListener);
}
public void showMySecondDialog() {
new CutsomDialog().show(getFragmentManager(), mSecondListener);
}
【问题讨论】:
-
发布 logcat 堆栈跟踪
-
请等一下
-
更快,除夕不到1h :)
-
为什么需要 logcat?
-
mTitle、mMessage 和 mListener 为空
标签: android exception android-fragments nullpointerexception dialog