Спиннеры не заполнены текстом - PullRequest
0 голосов
/ 24 января 2012

Я использую счетчик в нескольких местах в моей программе, но я остановлюсь на одном случае.

У меня есть два XML-файла - small_new_system и new_system .У них обоих есть блесна, которая называется state_spinner.

Странно то, что когда я использую этот код на планшете под управлением 3.2, который использует new_system, они отображаются, но когда я помещаю приложение на свой телефон, работающий под управлением 2.1, который использует small_new_system, они необъявиться.Элементы находятся в списке счетчиков, но текст не отображается.Я пробовал называть счетчики по-разному, а также не использовать собственную раскладку счетчика.

Другая странность в том, что когда я использую идентичные макеты, которые выглядят не очень хорошо, на маленьком устройстве они также не заполняются текстом.

Спасибо за любую помощь!Мой код выглядит следующим образом:

Код для заполнения счетчика:

states = (Spinner) findViewById(R.id.state_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter
    .createFromResource(this, R.array.states,
          R.layout.spinner_layout);
adapter.setDropDownViewResource(R.layout.spinner_layout);
states.setAdapter(adapter);
states.setOnItemSelectedListener(new MyItemsOnSelectListener());`

Спиннер в small_new_system:

<Spinner
   android:id="@+id/state_spinner"
   android:layout_width="200dp"
   android:layout_height="55dp"
   android:layout_below="@+id/city_edit"
   android:layout_margin="5dp"
   android:layout_alignParentRight="true"
   android:inputType="textPersonName"
   android:textSize="40dp" >
   </Spinner>

Спиннер в новой_системе:

<Spinner
        android:id="@+id/state_spinner"
        android:layout_width="500dp"
        android:layout_height="75dp"
        android:layout_below="@+id/city_edit"
        android:layout_margin="10dp"
        android:layout_alignParentRight="true"
        android:textSize="60dp" >
</Spinner>`

Код в пользовательском блесне:

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinnerTarget"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:textColor="#00000000"
    android:textSize="40dp" >
</TextView>`

Ответы [ 3 ]

0 голосов
/ 25 января 2012

Решение, которое я придумала, состояло в том, чтобы использовать android.R.layout.simple_dropdown_item для моего счетчика, когда обнаружен SDK менее 11, а когда SDK больше 11, я использую свой пользовательский счетчик.Кажется, это работает нормально.Не мое любимое решение, но оно работает.

0 голосов
/ 25 января 2012

Попробуйте это ..

spnPlan = (Spinner) findViewById(R.id.set_spinner1);

ArrayAdapter<CharSequence> planAdapter = ArrayAdapter.createFromResource(
                this, R.array.plan_size, android.R.layout.simple_spinner_item);
                planAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spnPlan.setAdapter(planAdapter);
        spnPlan.setOnItemSelectedListener(new MyOnItemSelectedListener());
0 голосов
/ 24 января 2012

Попробуйте удалить:

android:inputType="textPersonName"

от small_new_system. Тогда это будет выглядеть так:

<Spinner
    android:id="@+id/state_spinner"
    android:layout_width="200dp"
    android:layout_height="55dp"
    android:layout_below="@+id/city_edit"
    android:layout_margin="5dp"
    android:layout_alignParentRight="true"
    android:textSize="40dp" >
</Spinner>

Или вы можете попробовать добавить цвет фона:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinnerTarget"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:textColor="#00000000"
    android:background="#FFFFFFFF"
    android:textSize="40dp" />
...