use*_*313 4 android android-spinner
我在布局中使用了一个Spinner.我用这个代码:
...
<Spinner
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/spin_prod_promo" />
...
Run Code Online (Sandbox Code Playgroud)
现在,当我分配它的适配器时,我使用以下代码:
...
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(mcontext, android.R.layout.simple_spinner_item, mylabels);
// Drop down layout style
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner myspinner = (Spinner) V.findViewById(R.id.spin_prod_promo);
// attaching data adapter to spinner
myspinner.setAdapter(dataAdapter);
...
Run Code Online (Sandbox Code Playgroud)
我的问题是,微调器的文本颜色是白色的...因此是不可读的,我不会在代码中的任何地方将它设置为这样.
"有趣的是"我在不同的活动中使用完全相同的代码并且Spinner具有正确的颜色.不同之处在于,在此(BAD)情况下,微调器位于片段中.
我尝试使用自定义布局作为微调器的项目,但我成功的是使微调器看起来禁用.此外,下拉列表中总有一个项目具有背景颜色(只有点击它才能看到它,然后只要我点击就可以看到内容)这里发生了什么?我怎么解决这个问题?
我可以做些什么来设置微调器的颜色作为主题的颜色?片段中的所有其他小部件都具有正常颜色......
谢谢
Com*_*are 24
Context mcontext = getActivity().getApplicationContext(); 这是错的吗?
是的,这是错的.仅getApplicationContext()在您确切知道使用原因时才使用getApplicationContext().特别是,永远不要getApplicationContext()用于夸大布局,因为它会通过不使用正确的主题来搞砸.
我会mcontext完全删除,将其替换为getActivity()片段中需要的位置.
试试吧..
String[]array={"A","B","C","D"};
ArrayAdapter<String> adapter=new ArrayAdapter<String> (**YourClassName.this**,android.R.layout.simple_list_item_checked,array);
listView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
NOTE YourClassName.this 是你当前的班级名称.这段代码对我有用.
| 归档时间: |
|
| 查看次数: |
10250 次 |
| 最近记录: |