Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 微调器选择菜单文本在较新设备的白色背景上不可见/为白色_Android_Android Spinner - Fatal编程技术网

Android 微调器选择菜单文本在较新设备的白色背景上不可见/为白色

Android 微调器选择菜单文本在较新设备的白色背景上不可见/为白色,android,android-spinner,Android,Android Spinner,我使用的旋转器如下所示: ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, templateTitles); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mySpinner.setAdapter(a

我使用的旋转器如下所示:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, templateTitles);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

mySpinner.setAdapter(adapter);
ArrayAdapter adapter=新的ArrayAdapter(mContext、android.R.layout.simple\u spinner\u项、templateTitles);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
设置适配器(适配器);
我的清单是:

<application
    android:name="MyApplication"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:theme="@style/AppTheme" >

其中,样式为:

<style name="AppTheme" parent="android:Theme.WithActionBar">
        <item name="android:textColor">#000000</item>
</style>

#000000
问题是,当您单击微调器并显示带有选择项的对话框时,背景为白色,文本不可见(因为它是白色的)。单击并按住选定内容时,文本将显示为黑色

为什么文本不能默认显示为黑色/灰色?我如何克服这个问题? 这个问题似乎只发生在运行API 6或更高版本的设备上。我猜旧的设备正确地显示了颜色

有什么建议吗? 谢谢


编辑:仅当微调器位于对话框上时才会发生这种情况。

尝试将样式应用于微调器

<Spinner
    android:id="@+id/spinner"
    style="@android:style/Widget.Holo.Light.Spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:spinnerMode="dropdown" />
<Spinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/spinnerItemStyle"/>  

创建这样的样式

<style name="spinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
    <item name="android:textColor">#000000</item>
</style>  

#000000
应用于您的微调器

<Spinner
    android:id="@+id/spinner"
    style="@android:style/Widget.Holo.Light.Spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:spinnerMode="dropdown" />
<Spinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/spinnerItemStyle"/>  

编辑:-


将父样式更改为
@style/Widget.AppCompat.Spinner

我找到了此问题的解决方案。我需要在代码中这样做

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, templateTitles){
            @Override
            public View getDropDownView(int position, View convertView,
                                        ViewGroup parent) {
                View view = super.getDropDownView(position, convertView, parent);
                TextView tv = (TextView) view;

                // Set the Text color
                tv.setTextColor(Color.BLACK);

                return view;
            }
        };
ArrayAdapter=新的ArrayAdapter(mContext,android.R.layout.simple\u微调器\u项,templateTitles){
@凌驾
公共视图getDropDownView(int位置,视图转换视图,
视图组(父级){
视图=super.getDropDownView(位置、转换视图、父级);
TextView电视=(TextView)视图;
//设置文本颜色
tv.setTextColor(Color.BLACK);
返回视图;
}
};

它工作得不太好!仍然是白色文本。请记住,微调器位于一个对话框上(如果它起作用的话),请看这里的@commonware,也许您知道类似问题的答案?此处传递的mContext是活动上下文