我的活动中有2个微调器。其中一个微调器comExpiry是根据从另一个Spiner,comSpinner中选择的值填充的。但是,我遇到了comSpinner正确显示的问题,而comExpiry的文本和背景颜色在运行ICS的模拟器中被设置为白色,因此是不可读的。
请注意,它在Froyo和Gingerbread都可以正常使用。我注意到如果删除附加到comSpinner的侦听器,则微调器将按预期显示。我到处寻找但找不到解决方案。任何帮助将受到高度赞赏。
comSpinner = (Spinner) findViewById(R.id.watchListSpinnetComm);
comExpiry = (Spinner) findViewById(R.id.watchListSpinnerExpiry);
ArrayAdapter<String> expAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,
McxCommApp.comSelect.get(0));
expAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
comExpiry.setAdapter(expAdapter);
myAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, McxCommApp.comName);
myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
comSpinner.setAdapter(myAdapter);
comSpinner.setOnItemSelectedListener(new myListener());
ItemSelectedListener代码如下:
public class myListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
expAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.spinner_a,
McxCommApp.comSelect.get(pos));
expAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
comExpiry.setAdapter(expAdapter);
}
public void onNothingSelected(AdapterView<?> parent) {
// Do nothing.
}
}
定义布局的XML段:
<TableRow
android:id="@+id/watchListTable"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Spinner
android:id="@+id/watchListSpinnetComm"
android:layout_height="32dip"
android:layout_column="1"
android:layout_gravity="center_vertical"
android:paddingLeft="5dip" />
<Spinner
android:id="@+id/watchListSpinnerExpiry"
android:layout_width="145dip"
android:layout_height="32dip"
android:layout_column="2"
android:layout_gravity="center_vertical"
android:paddingLeft="5dip" />
<Button
android:id="@+id/watchListAdd"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:layout_gravity="center_vertical"
android:text="+"
android:textAppearance="?android:attr/textAppearanceLarge" />
</TableRow>