我在程序中的几个地方使用了一个微调器,但我会坚持使用一个案例。
我有两个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>`
答案 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());