0

我在程序的几个地方都使用了微调器,但我会坚持使用一种情况。

我有两个 xml 文件—— small_new_systemnew_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>

new_system 中的微调器:

<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>`
4

3 回答 3

0

尝试删除:

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" />
于 2012-01-24T13:45:13.820 回答
0

我想出的解决方案是在检测到小于 11 的 sdk 时为我的微调器使用 android.R.layout.simple_dropdown_item,当 sdk 大于 11 时,我使用我的自定义微调器。这似乎工作正常。不是我最喜欢的解决方案,但它确实有效。

于 2012-01-25T05:00:26.150 回答
0

试试这个..

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());
于 2012-01-25T05:17:56.287 回答