Android onItemSelected - NullPointer - PullRequest
0 голосов
/ 22 июня 2011

следующий код генерирует NullPointerException :

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);
    }
}

Он выбрасывается из-за explanation = (TextView) findViewById(R.id.picker_explanation_text); в методе onItemSelected(...), но я понятия не имею, почему. В конце концов, он работает по методу onCreate(...).

1 Ответ

1 голос
/ 22 июня 2011

вместо

    spinner.setOnItemSelectedListener(new test());

использование

    spinner.setOnItemSelectedListener(this);

Вы хотите использовать свою реальную деятельность в качестве цели; вы создаете новый объект, который никогда не инициализируется с контекстом, поэтому при его вызове происходит сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...