Android Spinner空指针

时间:2018-12-13 16:23:22

标签: java android

对话框显示时

旋转器错误。我在适配器中的位置对话框

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.Object android.widget.Spinner.getSelectedItem()'

private void stopDialog(final MyViewHolder holder, int position){

    android.app.AlertDialog.Builder dialog = new android.app.AlertDialog.Builder(context);
    LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
    View dialogView = inflater.inflate(R.layout.dialog_stop, null);
    dialog.setView(dialogView);
    dialog.setCancelable(false);

    final Button dialog_button_positive = (Button) dialogView.findViewById(R.id.dialog_button_positive);
    final Button dialog_button_negative = (Button) dialogView.findViewById(R.id.dialog_button_negative);
    final Spinner statusstop1 = (Spinner) dialogView.findViewById(R.id.statusstop);
    final String valuestatustop = statusstop1.getSelectedItem().toString();




    final android.app.AlertDialog alertDialog = dialog.create();
    alertDialog.show();

    dialog_button_negative.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            holder.switch_start.setChecked(true);
            alertDialog.dismiss();

        }
    });

    dialog_button_positive.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            Toast.makeText(context,
                    valuestatustop,
                    Toast.LENGTH_SHORT).show();

            alertDialog.dismiss();

        }
    });




}

3 个答案:

答案 0 :(得分:1)

检查您的xml文件,因为您的statusstop1为空。 确保您的xml statusstop ID在Spinner中可用。

答案 1 :(得分:0)

我假设statusstop1为null,这导致NPE。 我认为这是由于您试图访问只是“膨胀”了一个片段的视图而引起的。 您不应该这样做,因为通货膨胀不是同步的。如果我的理论是正确的,那么在访问R.id.statusstop之前将thread.sleep置于休眠状态应该可以解决该问题。

在这种情况下,您应该将需要访问片段属性的代码放在片段类中,并使用活动与片段之间或片段到片段之间的其他通信方式:https://developer.android.com/training/basics/fragments/communicating < / p>

答案 2 :(得分:0)

在调用 getSelectedItem()方法之前,请确保Spinner对象中列出了一些项目。

某些情况下,空指针异常也可能是由于Spinner对象无任何显示且 getSelectedItem()方法试图获取未列出的项目列表而引起的。列出。