【发布时间】:2020-06-24 14:35:21
【问题描述】:
我有一个底部导航片段,我想在单击按钮时在片段中显示一个单选对话框,但我有这个 logcat:
2020-06-24 18:47:27.954 18946-18946/app E/AndroidRuntime: FATAL EXCEPTION: main
Process: app, PID: 18946
java.lang.NullPointerException: Attempt to invoke interface method 'void app.MapChoiceFragment$SingleChoiceListener.OnNegativeButtonClickedMap()' on a null object reference
at app.baharestanschool.ir.MapChoiceFragment$1.onClick(MapChoiceFragment.java:55)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:174)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
这是我的错误代码:
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final String[] item = getActivity().getResources().getStringArray(R.array.addresses);
builder.setTitle("choose")
.setSingleChoiceItems(item, position, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
position=i;
}
})
.setPositiveButton("O", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
mlistener.OnPosetiveButtonClickedMap(item,position);
}
})
.setNegativeButton("c", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
mlistener.OnNegativeButtonClickedMap();
}
});
return builder.create();
}
【问题讨论】:
-
我认为
mlistener为空 -
如何给
mlistener赋值? -
什么是
mListener?