即使我无法从我的测试中复制,我也能从我的Android应用程序的用户那里得到这个错误消息。任何帮助是极大的赞赏。这是logcat:
java.lang.NullPointerException
at com.janzen.bodybuildingdiet.MealOne$4.onItemSelected(MealOne.java:2172)
at android.widget.AdapterView.fireOnSelected(AdapterView.java:882)
at android.widget.AdapterView.selectionChanged(AdapterView.java:865)
at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:1017)
at android.widget.AdapterView.handleDataChanged(AdapterView.java:999)
at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:179)
这是代码片段(第2172行是“setTextColor(Color.WHITE);:
spinnerCarbs.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {public void onItemSelected(AdapterView<?> parentView,
View selectedItemView, int position, long id) {
String selection = parentView.getItemAtPosition(
position).toString();
((TextView) spinnerCarbs.getChildAt(0))
.setTextColor(Color.WHITE);
((TextView) spinnerCarbs.getChildAt(0))
.setGravity(Gravity.CENTER);
carbsSelection = selection;
carbsSpinnerPosition = spinnerCarbs
.getSelectedItemPosition();
savePrefs("CARBS", carbsSpinnerPosition);
}
答案 0 :(得分:4)
spinnerCarbs为null,或者为空,因此其第0个子元素为null。如果你想要进行防御性编码,请执行
if(spinnerCarbs != null && spinnerCarbs.getChildAt(0) != null){
((TextView) spinnerCarbs.getChildAt(0))
.setTextColor(Color.WHITE);
((TextView) spinnerCarbs.getChildAt(0))
.setGravity(Gravity.CENTER);
}
答案 1 :(得分:0)
你可以尝试
if(spinnerCarbs == null) return;
然后你们其余的人编码