旋转器错误。我在适配器中的位置对话框
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();
}
});
}
答案 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()方法试图获取未列出的项目列表而引起的。列出。