旋转器没有填充文本

时间:2012-01-24 13:24:29

标签: android android-spinner

我在程序中的几个地方使用了一个微调器,但我会坚持使用一个案例。

我有两个xml文件 - small_new_system new_system 。它们都有一个名为state_spinner的微调器。

奇怪的是,当我在使用new_system的运行3.2的平板电脑上使用此代码时,会显示它们,但是当我将应用程序放在运行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:

<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:

<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 :(得分: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" />

答案 1 :(得分:0)

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

答案 2 :(得分: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());