从下拉列表中选择项目后,我正在尝试更改微调器按钮中显示的单个项目的文本颜色.我一直在Android SDK中浏览themes.xml和styles.xml一小时,我似乎无法找到Spinner从中获取颜色值的位置.
为了澄清,我不是试图改变下拉项的颜色,我试图在没有下拉列表的情况下改变微调器显示文本的颜色.我想你可以称之为微调器的"按钮"文本.
视图文本中最中心的最微调 - 当 - 选择 - 来自该下拉列表
我想将微调器的视图文本与中心对齐.我谷歌但没有找到任何东西,有人知道吗?任何帮助或建议表示赞赏
如何在微调器中更改所选项的字体颜色?
我可以更改所选项目的背景颜色,下拉项目的颜色等,但不能更改所选项目的文本颜色...我该怎么做?
我的代码是:这是我正在使用的微调器 - :
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="32dip"
android:background="@drawable/mybg"
android:divider="@drawable/list_divider"
android:drawSelectorOnTop="true"
android:popupBackground="#D3D5D3"
android:prompt="@string/activityy_prompt"
/>
Run Code Online (Sandbox Code Playgroud)
这是mybg.xml
<!-- <item android:drawable="@drawable/blue" android:state_pressed="false"/> -->
<!-- <item android:drawable="@drawable/back11"/> -->
<item android:drawable="@drawable/greenyellow1" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@drawable/greenyellow1" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/greenyellow1" android:state_focused="false" android:state_pressed="true"/>
<item android:drawable="@drawable/greenyellow1" android:state_selected="true"/>
<item android:drawable="@drawable/back11"/>
Run Code Online (Sandbox Code Playgroud)
使用这些我无法改变selecetd项目的文字颜色......
我已经通过数据库填充数组列表实现了微调器.我可以在我的微调器数组适配器中获取并显示数组列表但是如果我在微调器中选择它没有在微调器中显示?我在这里有什么错误?
这是我的代码,
Spinner spinner1 = (Spinner) findViewById(R.id.prospin);
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, providerlist);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
Run Code Online (Sandbox Code Playgroud)
我使用这个来获取所选的项目字符串,
Spinner provid = (Spinner)findViewById(R.id.prospin);
String provider =provid.getSelectedItem().toString();
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我!
据我所知,封闭的旋转器实际上是一个View.但我猜它有一个TextView地方可以显示文字.我如何访问它,TextView以便我可以更改文本颜色?
编辑:我需要动态地以编程方式更改此项,而不是在XML中.
TextView v = (TextView) getView(mySpinner);
v.setTextColor(.....
Run Code Online (Sandbox Code Playgroud)
这不起作用......
谢谢!
array_typ=new String[5];
array_typ[0]="Pressure";
array_typ[1]="Level";
array_typ[2]="Overage";
array_typ[3]="Under";
array_typ[4]="Taken";
adaptertyp = new ArrayAdapter<Object>(this,R.layout.simple_spinner_item, array_typ);
typ.setAdapter(adaptertyp);
Run Code Online (Sandbox Code Playgroud) 我有一个微调器,在某些条件下,某些选项不应该是可选择的.我有代码使项目不可选,但它不会使文本颜色变灰以指定该项目不可选.如何更改应禁用的微调器中项目的文本颜色?这是代码:
public class main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
PatchedSpinner pSpinner = (PatchedSpinner) findViewById(R.id.spinner2);
ArrayList<String> testarray = new ArrayList<String>();
testarray.add("item0");
testarray.add("item1");
testarray.add("item2");
testarray.add("item3");
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, testarray) {
@Override
public boolean isEnabled(int position) {
return position != 1;
}
public boolean areAllItemsEnabled() {
return false;
}
};
pSpinner.setAdapter(spinnerAdapter);
}
Run Code Online (Sandbox Code Playgroud)
下面是Custom Spinner Class,用于创建一个能够禁用微调器中某些项的微调器.
public class PatchedSpinner extends Spinner {
public PatchedSpinner(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public …Run Code Online (Sandbox Code Playgroud) 我可以使用旋转器添加下划线style="@style/Base.Widget.AppCompat.Spinner.Underlined".如何仅使用样式更改下划线的颜色?我不想使用任何可绘制的文件来改变它.
<item name="colorControlHighlight">@color/colorAccent</item>
<item name="colorControlNormal">@color/colorAccent</item>
Run Code Online (Sandbox Code Playgroud)
使用上面的样式,当用户点击它时,它只有下划线.它在正常状态下不会改变下划线的颜色.
当我禁用我的微调器时,它显示了带有alpha的文本,所以texte变得有点不可见,我的问题是如何改变这种颜色?PS:我不需要改变微调器的纹理颜色.
嗨,我想以编程方式(动态)设置微调器中文本的样式和大小.我不会在我的应用程序中使用任何资源.所以给我一些建议
我正在制作Spinner如下图像.它可以正常工作.但我想改变background颜色#FFFFFF和textColor到#000000.但我得到了修改输出......
java代码:
Spinner staticSpinner = (Spinner)findViewById(R.id.static_spinner);
ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter.createFromResource(this,R.array.request_role,android.R.layout.simple_spinner_item);
staticAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
staticSpinner.setAdapter(staticAdapter);
Run Code Online (Sandbox Code Playgroud)
xml代码:
<Spinner
android:id="@+id/static_spinner"
android:layout_width="150dp"
android:layout_height="45dp"
android:layout_marginLeft="30dp"
style="@android:style/Widget.Holo.Light.DropDownItem" ></Spinner>
Run Code Online (Sandbox Code Playgroud)
simple_spinner_dropdown_item.xml
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="?android:attr/dropdownListPreferredItemHeight"
android:ellipsize="marquee"
android:textColor="#000000"
/>
Run Code Online (Sandbox Code Playgroud)
simple_spinner_item.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textColor="#000000"
android:textAlignment="inherit"/>
Run Code Online (Sandbox Code Playgroud)
styles.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat">
<item name="colorPrimary">#0072BA</item>
<item name="colorPrimaryDark">#004F80</item>
<item name="colorAccent">#0072BA</item>
<item name="android:textColorPrimary">#FFFFFF</item>
<item name="colorControlHighlight">#FFFFFF</item> …Run Code Online (Sandbox Code Playgroud)