下面的代碼拋出一個NullPointerException異常:的Android onItemSelected - 空指針
public class test extends Activity implements OnItemSelectedListener {
private TextView explanation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.psqlpicker);
explanation = (TextView) findViewById(R.id.picker_explanation_text);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.picker_array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setOnItemSelectedListener(new test());
spinner.setAdapter(adapter);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
explanation = (TextView) findViewById(R.id.picker_explanation_text);
}
}
這是因爲在onItemSelected(...)
方法explanation = (TextView) findViewById(R.id.picker_explanation_text);
拋出,但我不知道爲什麼。畢竟,它是在onCreate(...)
方法中工作的。
您提到的實際行不太可能引發NPE;當解釋被其他地方引用時,返回null和NPE的實際問題是什麼? – antlersoft
刪除此行時不會引發NPE。一旦我再次放入,NPE再次被拋出。其他的東西也很奇怪:「解釋」應該在onCreate方法中「填充」,但是在onItemSelected方法中它仍然是null。 – deimos1988