Java 安卓系统-使自定义警报对话框在单击后消失
我试图使其在按下按钮时弹出一个alertdialogue,其中有一个微调器,在微调器中有三个选项,如何使其在选择其中一个选项时alertdialogue消失,每当我从微调器中选择某个内容时,下面的代码就会崩溃 下面是我的代码Java 安卓系统-使自定义警报对话框在单击后消失,java,android,listener,android-spinner,android-alertdialog,Java,Android,Listener,Android Spinner,Android Alertdialog,我试图使其在按下按钮时弹出一个alertdialogue,其中有一个微调器,在微调器中有三个选项,如何使其在选择其中一个选项时alertdialogue消失,每当我从微调器中选择某个内容时,下面的代码就会崩溃 下面是我的代码 public void AlertD() { LayoutInflater li = LayoutInflater.from(getActivity()); View promptsView = li.inflate(R.layout.abs, nul
public void AlertD() {
LayoutInflater li = LayoutInflater.from(getActivity());
View promptsView = li.inflate(R.layout.abs, null);
// above I am setting the customview of the alert dialogue
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
getActivity());
alertDialogBuilder.setView(promptsView);
// here I am officially setting the custom layout
// set dialog message
alertDialogBuilder.setTitle(dialoguechoice + " Stretch Type");
// alert dialogue title
// create alert dialog
final AlertDialog alertDialog = alertDialogBuilder.create();
// above is creating the alert dialogue
final Spinner mSpinner = (Spinner) promptsView
.findViewById(R.id.sSType);
// above is initializing the spinner
// reference UI elements from my_dialog_layout in similar fashion
mSpinner.setOnItemSelectedListener(new OnSpinnerItemClicked());
// show it
alertDialog.show();
alertDialog.setCanceledOnTouchOutside(true);
}
下面是我的听众
public class OnSpinnerItemClicked implements OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
switch (pos) {
case (1):
alertDialog.dismiss();
break;
}
}
@Override
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
谢谢请通过在问题中添加堆栈跟踪来定义“我下面的代码崩溃”。现在,它几乎是在黑暗中拍摄的。@MH。我添加了logcat@MH. 你不知道为什么它不起作用吗?我猜第178行是:
alertDialog.disease()
,这意味着alertDialog==null
(由于NPE)。要么你的监听器在变量初始化之前被命中,要么它在被拆除之后被命中。
06-18 18:09:55.939: E/AndroidRuntime(4355): FATAL EXCEPTION: main
06-18 18:09:55.939: E/AndroidRuntime(4355): java.lang.NullPointerException
06-18 18:09:55.939: E/AndroidRuntime(4355): at com.OptimusApps.stayhealthy.Body$OnSpinnerItemClicked.onItemSelected(Body.java:178)
06-18 18:09:55.939: E/AndroidRuntime(4355): at android.widget.AdapterView.fireOnSelected(AdapterView.java:882)
06-18 18:09:55.939: E/AndroidRuntime(4355): at android.widget.AdapterView.access$200(AdapterView.java:48)
06-18 18:09:55.939: E/AndroidRuntime(4355): at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:848)
06-18 18:09:55.939: E/AndroidRuntime(4355): at android.os.Handler.handleCallback(Handler.java:605)
06-18 18:09:55.939: E/AndroidRuntime(4355): at android.os.Handler.dispatchMessage(Handler.java:92)
06-18 18:09:55.939: E/AndroidRuntime(4355): at android.os.Looper.loop(Looper.java:137)
06-18 18:09:55.939: E/AndroidRuntime(4355): at android.app.ActivityThread.main(ActivityThread.java:4575)
06-18 18:09:55.939: E/AndroidRuntime(4355): at java.lang.reflect.Method.invokeNative(Native Method)
06-18 18:09:55.939: E/AndroidRuntime(4355): at java.lang.reflect.Method.invoke(Method.java:511)
06-18 18:09:55.939: E/AndroidRuntime(4355): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
06-18 18:09:55.939: E/AndroidRuntime(4355): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
06-18 18:09:55.939: E/AndroidRuntime(4355): at dalvik.system.NativeStart.main(Native Method)