ResourceNotFoundException с использованием Spinner - PullRequest
0 голосов
/ 01 июля 2011

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

 Dialog dialog = new Dialog(mContext);
 dialog.setContentView(R.layout.myPopup);
 Spinner spinner = (Spinner)dialog.findViewById(R.id.spinner);
 ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(mContext, 0);
 arrayadapter.add("AddSomeStrings");
 spinner.setAdapter(arrayadapter);
 dialog.show();

Этот код выполняется нормально, но через некоторое время после "show ()" я вижу исключение: Resources $ NotFoundException.Последний элемент в стеке вызовов - это Resources.loadXmlResourceParser.Если я не назначаю спиннер с помощью findViewById, а вместо этого назначаю его через spinner = new Spinner (dialog.getContext ()), то я не получаю сообщение об ошибке (но тогда, конечно, я не вижу свой диалог).

Макет myPopup содержит:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/layout_root"
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:padding="10dp"
          >
  <Spinner 
    android:id="@+id/spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawSelectorOnTop="true"
    android:prompt="@string/group_prompt"
     />
 </LinearLayout>

Есть мысли, что я делаю не так?спасибо!

1 Ответ

0 голосов
/ 01 июля 2011

Вы используете адаптер массива с Constructor Context и TextView ID, но вы просто передаете его 0 как идентификатор ресурса текстового представления.

См. API здесь: ArrayAdapter

Попробуйте:

  ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item);

или другой ресурс по вашему выбору

...