Android 无法更改微调器中项目的颜色
我在代码中添加了两个微调器。但默认情况下,微调器的项目以黑色显示。我想更改微调器项的颜色。我已在simple\u spinner\u item.xml文件中添加了颜色。但是颜色没有改变。我已经在这里粘贴了我的代码。请帮助我Android 无法更改微调器中项目的颜色,android,spinner,listitem,Android,Spinner,Listitem,我在代码中添加了两个微调器。但默认情况下,微调器的项目以黑色显示。我想更改微调器项的颜色。我已在simple\u spinner\u item.xml文件中添加了颜色。但是颜色没有改变。我已经在这里粘贴了我的代码。请帮助我 public class Alert_activity extends Activity implements OnItemSelectedListener{ Spinner s1,s2; @Override protected void onCreate(
public class Alert_activity extends Activity implements OnItemSelectedListener{
Spinner s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alert_activity);
s1 = (Spinner)findViewById(R.id.spinner1);
s2 = (Spinner)findViewById(R.id.spinner2);
s1.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String sp1= String.valueOf(s1.getSelectedItem());
if(sp1.contentEquals("Events")) {
List<String> list = new ArrayList<String>();
list.add("Heavy Rain(mm/hr)");
list.add("Smoke/Fog");
list.add("Heat/Cold Wave");
list.add("Strong Winds");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dataAdapter.notifyDataSetChanged();
s2.setAdapter(dataAdapter);
s2.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapter, View v,
int position, long id) {
// On selecting a spinner item
String item = adapter.getItemAtPosition(position).toString();
Log.d("Item",item);
FragmentTransaction tx = getFragmentManager() .beginTransaction();
if(item=="Heavy Rain(mm/hr)")
{
tx.replace(android.R.id.content, new heavyrain());
tx.commit();
}
});
}
if(sp1.contentEquals("Forecast")) {
List<String> list = new ArrayList<String>();
list.add("Heavy Rain(mm/hr)");
list.add("Cyclone");
list.add("Cloudburst");
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dataAdapter2.notifyDataSetChanged();
s2.setAdapter(dataAdapter2);
s2.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapter, View v,
int position, long id) {
String item = adapter.getItemAtPosition(position).toString();
Log.d("Inside loop","inside loop");
FragmentTransaction tx = getFragmentManager() .beginTransaction();
if(item=="Cyclone")
{
tx.replace(android.R.id.content, new Cyclone());
}
else if(item=="Heavy Rain(mm/hr)")
{
tx.replace(android.R.id.content, new forecast_heavyrain());
}
else if(item=="Cloudburst")
{
tx.replace(android.R.id.content, new forecast_cloudburst());
}
tx.commit();
}
});
}
}
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:textAlignment="inherit"
android:textColor="#FFFFFF"/>
public class Alert_活动扩展活动实现了MSelectedListener{
旋转器s1、s2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.alert_活动);
s1=(喷丝器)findViewById(R.id.spinner1);
s2=(喷丝器)findViewById(R.id.喷丝器2);
s1.setOnItemSelectedListener(此);
}
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3){
String sp1=String.valueOf(s1.getSelectedItem());
if(sp1.contentEquals(“事件”)){
列表=新的ArrayList();
增加(“大雨(毫米/小时)”;
列表。添加(“烟雾/雾”);
列表。添加(“热浪/冷浪”);
添加(“强风”);
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,列表);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
dataAdapter.notifyDataSetChanged();
s2.设置适配器(数据适配器);
s2.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(适配器视图适配器,视图v,
内部位置,长id){
//关于选择微调器项
String item=adapter.getItemAtPosition(位置).toString();
日志d(“项目”,项目);
FragmentTransaction tx=getFragmentManager().beginTransaction();
如果(项目==“大雨(毫米/小时)”)
{
tx.replace(android.R.id.content,new heavyrain());
tx.commit();
}
});
}
if(sp1.contentEquals(“预测”)){
列表=新的ArrayList();
增加(“大雨(毫米/小时)”;
列表。添加(“旋风”);
添加(“云暴”);
ArrayAdapter dataAdapter2=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项目,列表);
dataAdapter2.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
dataAdapter2.notifyDataSetChanged();
s2.设置适配器(数据适配器2);
s2.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(适配器视图适配器,视图v,
内部位置,长id){
String item=adapter.getItemAtPosition(位置).toString();
Log.d(“内环”、“内环”);
FragmentTransaction tx=getFragmentManager().beginTransaction();
如果(项目==“旋风分离器”)
{
tx.replace(android.R.id.content,new Cyclone());
}
否则,如果(项目==“大雨(毫米/小时)”)
{
tx.replace(android.R.id.content,newforecast_heavyrain());
}
否则,如果(项目==“云爆发”)
{
tx.replace(android.R.id.content,newforecast_cloudburst());
}
tx.commit();
}
});
}
}
simple_spinner_item.xml
私有OnItemSelectedListener OnCatSpinnerCL=new AdapterView.OnItemSelectedListener(){
已选择公共视图(AdapterView父视图、视图、int pos、,
长id){
((TextView)parent.getChildAt(0)).setTextColor(Color.BLUE);
((TextView)parent.getChildAt(0)).setTextSize(5);
}
未选择公共无效(AdapterView父级){
}
})
或者参考此链接:如果
简单微调器项目.xml
包含微调器项目的背景色,则使用
dataAdapter.setDropDownViewResource(R.layout.simple_spinner_item);
而不是dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
同样地
dataAdapter.setDropDownViewResource(R.layout.simple_spinner_item);
而不是dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
您可能还必须将
ArrayAdapter
中的布局集更改为自定义布局以解决此问题。onclick事件中的颜色已更改,但我希望在初始化时使用白色。因此,我应该在哪里更改代码?将getview方法覆盖到数组适配器并更改其中的颜色
((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE);
((TextView) parent.getChildAt(0)).setTextSize(5);
}
public void onNothingSelected(AdapterView<?> parent) {
}