ArrayAdapter и Spinner получают исключение нулевого указателя - PullRequest
1 голос
/ 07 декабря 2011

Я пытаюсь добавить предметы в мой счетчик, но получаю

12-06 15: 44: 13.828: E / AndroidRuntime (763): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное 12-06 15: 44: 13.828: E / AndroidRuntime (763): android.content.res.Resources $ NotFoundException: идентификатор ресурса # 0x7f050004, тип # 0x12 недействителен

Spinner options;
private String spinnerarray[4];


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fluidscreen);

    options = (Spinner)findViewById(R.id.options);

    spinnerarray[0] = "Water";
    spinnerarray[1] = "Gatorade/Powerade";
    spinnerarray[2] = "Soda";
    spinnerarray[3] = "Other";

    ArrayAdapter adapter = new ArrayAdapter(this, R.id.textView1, spinnerarray);
    options.setAdapter(adapter);


}

1 Ответ

1 голос
/ 07 декабря 2011

Прежде чем начать добавлять элементы в массив, выполните:

spinnerarray = new String[4];

Это необходимо для выделения памяти для ваших элементов String, без этого вы получите NullPointerException

Если у вас есть проблема с ресурсами, измените R.id.textView1 , который вы указываете для ArrayAdapter , на

android.R.layout.simple_spinner_item

Это будет ссылаться на Android по умолчанию TextViewЭлемент Это хорошая возможность для дизайна, если вы хотите использовать простой виджет Android для TextView, не создавая какой-либо изящный вид для хранения Spinner schoice

...