1

正在创建包含一些微调器的 android 应用程序。这里出现了一些问题。有时微调器项目的文本颜色会因设备而异。我怎么能克服这个....

这是为微调器设置值的代码。

ArrayAdapter<PatientCaseList> adapter = new ArrayAdapter<PatientCaseList>(getApplicationContext(), android.R.layout.simple_spinner_item,caseList);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinnerCaseNames.setAdapter(adapter);

当我在 android 2.3.3 中使用此应用程序时,它会正确显示选项,但在 3.0 中它不显示

4

2 回答 2

1

每个设备都会在 Spinner 上执行自己的主题。

您不应该使用内置微调器布局。而是创建自己的布局。

my_spinner_layout.xml

 <TextView  
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:textColor="#FF0000"         
        />

然后使用

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_spinner_layout,list);
于 2013-03-14T11:58:54.383 回答
1

您可以为 Spinner 创建自定义主题。例子:

样式.xml

<style name="TextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
    <item name="android:textColor">#000</item>
    <item name="android:textSize">10sp</item>
</style>

<style name="SpinnerItem" parent="android:Widget.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/TextAppearanceSpinnerItem</item>
</style>

<style name="SpinnerTheme" parent="android:Theme">
    <item name="android:spinnerItemStyle">@style/SpinnerItem</item>
</style>

现在将您的自定义主题应用于具有微调器的活动,例如:

<activity
        android:name="MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/SpinnerTheme
        android:windowSoftInputMode="adjustResize|stateHidden" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

希望这会帮助你。

于 2013-03-14T11:51:00.727 回答