在我的Android应用程序中,我正在使用旋转器,我已经从SQLite数据库加载数据到旋转器中,它工作正常。这是它的代码。
Spinner spinner = (Spinner) this.findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item, list);
cursor.moveToFirst();
list.add("All Lists");
if (cursor.getCount() > 0) {
for (int i = 0; i < cursor.getCount(); i++) {
keyList[i] = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.KEYWORD));
list.add(keyList[i]);
cursor.moveToNext();
}
}
Database.close();
cursor.close();
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
现在我想要改变旋转数据的文本颜色和文本大小。我在XML文件上使用了以下XML行作为旋转标记,但它不起作用。
android:textColor="@android:color/white"
android:textSize="11dp"
我如何改变我的转轮的文本颜色和文本大小?
String typeroutes[] = {"Select","Direct","Non Stop"};
Spinner typeroute;
typeroute = view.findViewById(R.id.typeroute);
final ArrayAdapter<String> arrayAdapter5 = new ArrayAdapter<String>(
getActivity(), android.R.layout.simple_spinner_item, typeroutes) {
@Override
public boolean isEnabled(int position) {
if (position == 0) {
// Disable the first item from Spinner
// First item will be use for hint
return false;
} else {
return true;
}
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
((TextView) v).setTextColor(Color.parseColor("#ffffff"));
return v;
} ---->in this line very important so add this
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView tv = (TextView) view;
if (position == 0) {
// Set the hint text color gray
tv.setTextColor(Color.GRAY);
} else {
tv.setTextColor(Color.BLACK);
}
return view;
}
};
arrayAdapter5.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
typeroute.setAdapter(arrayAdapter5);
这就是所有的享受你的编码…
我们可以像这样改变旋转器的textview设置主题的样式:
styles.xml:
<style name="mySpinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
<item name="android:textSize">@dimen/_11ssp</item>
<item name="android:textColor">@color/blue</item>
<item name=...</item>
</style>
then
<Spinner
android:theme="@style/mySpinnerItemStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
如果你想改变纺纱机的textview属性编程式:
编程:
val textView = (view.getChildAt(0) as TextView)
textView.setTextColor(resources.getColor(R.color.dark_mode))
可以通过重写getView方法更改文本颜色,如下所示:
new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, list()){
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
//change the color to which ever you want
((CheckedTextView) view).setTextColor(Color.RED);
//change the size to which ever you want
((CheckedTextView) view).setTextSize(5);
//for using sp values use setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
return view;
}
}
如果所有的旋转框对它们的TextView项可能有相同的文本颜色,另一种方法是为旋转框下拉项使用自定义样式:
在res /价值/ styles.xml:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
</style>
<style name="mySpinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
<item name="android:textColor">@color/my_spinner_text_color</item>
</style>
</resources>
并在res/values/colors.xml中定义自定义颜色:
<color name="my_spinner_text_color">#808080</color>