次のコードは、のNullPointerException投げている:それが原因onItemSelected(...)
方法でexplanation = (TextView) findViewById(R.id.picker_explanation_text);
のスローされアンドロイドonItemSelectedにNullPointer
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);
}
}
を、私は、なぜ分かりません。結局のところ、onCreate(...)
メソッドで働いています。代わりにあなたがターゲットとして、あなたの本当の活動を使用したい
spinner.setOnItemSelectedListener(new test());
使用
spinner.setOnItemSelectedListener(this);
の
あなたが参照した実際の行は、NPEを投げることはまずありません。説明が別の場所で参照されているときにnullが返され、NPEがスローされるという実際の問題ですか? – antlersoft
この行を削除するとNPEはスローされません。私は再びそれを入れ、NPEは再び投げられる。他の何かは奇妙です: "説明"はonCreateメソッドで "満たされる"必要がありますが、onItemSelectedメソッドではまだnullです。 – deimos1988