2

您好,我想将默认橙色更改为红色,同时从下面的微调器中选择列表项是我的代码

要将文本放在微调器列表的中间并删除选择中的单选按钮,我已经制作了自定义适配器

   ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.range, R.layout.middle_text_spinner);
spBAFirst.setAdapter(adapter);

现在 middle_text_spinner 的 xml 文件在下面...

<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/spinnerItemStyle"
android:singleLine="true" 
android:layout_width="fill_parent"
android:textColor="@color/tabDark"
android:layout_height="wrap_content"
android:gravity="center" />

现在微调器的图像如下

微调器

首先,我想将此中间文本的颜色更改为白色而不是黑色

但是当列表打开时所有文本必须是黑色和白色背景但在某些电话文本会变成白色

在此处输入图像描述

现在我想在选择列表时将默认颜色橙色更改为红色

我已经用 Google 搜索了,但选择时无法更改颜色

我尝试过使用listSelector但无法完成和使用下面也是我的代码

这是在可绘制文件夹 btn_red_color.xml 文件中

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_enabled="false" android:state_focused="true"
    android:drawable="@color/red" />
   <item android:state_pressed="true"
    android:drawable="@color/red" />
   <item android:state_focused="true"
    android:drawable="@color/red" />
</selector>

并将此值设置为微调器列表选择器

 <Spinner
  android:id="@+id/spBAFirst"
   style="@style/my_cust_text"
   android:layout_width="100dp"
   android:layout_height="35dp"
   android:background="@drawable/blue_button"
   android:listSelector="@drawable/btn_red_color" />

而 my_cust_text 样式是

  <style name="my_cust_text">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:ellipsize">marquee</item>
    <item name="android:lines">1</item>
    <item name="android:maxLines">1</item>
    <item name="android:layout_weight">1</item>
    <item name="android:entries">@+array/range</item>
    <item name="android:layout_marginLeft">-3dip</item>
    <item name="android:layout_marginRight">-3dip</item>
    <item name="android:gravity">center</item>
</style>    

但它不起作用:(请任何人帮助我

4

2 回答 2

3

我已经通过这种方式找到了解决方案,您肯定可以完成 90% 的工作 :) 您可以显示红色突出显示的颜色

在此处输入图像描述

使 CustomAdapter 称为 MySpinnerAdapter...

  MySpinnerAdapter adapter = new MySpinnerAdapter(MySettings.this);
  spBAFirst.setAdapter(adapter);


 static class ViewHolder {
    TextView text;
}

private class MySpinnerAdapter extends BaseAdapter {

    private LayoutInflater mInflater;
    String[] array;

    public MySpinnerAdapter(Context context) {
        mInflater = LayoutInflater.from(context);
        array = getResources().getStringArray(R.array.range);
    }

    @Override
    public int getCount() {
        return array.length;
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    // A view to hold each row in the list
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.middle_text_spinner, null);
            holder = new ViewHolder();
            holder.text = (TextView) convertView.findViewById(R.id.spinnerText);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.text.setText(array[position]);
        convertView.setBackgroundResource(R.drawable.btn_red_color);
        return convertView;
    }
}

将此文件放入可绘制文件夹 btn_red_color.xml

  <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:state_focused="true"
    android:drawable="@color/white" />
  <item android:state_pressed="true"
    android:drawable="@color/red" />
  <item android:state_focused="true"
    android:drawable="@color/red" />
</selector>

Spinner的xml文件是这样的

  <Spinner
                    android:id="@+id/spBAThird"
                    style="@style/my_cust_text"
                    android:layout_width="100dp"
                    android:layout_height="35dp"
                    android:background="@drawable/blue_button"
                    android:cacheColorHint="@color/red"
                    android:textColor="@color/white" />

Middle_text_spinner.xml 文件如下

   <?xml version="1.0" encoding="utf-8"?>
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerText"
style="?android:attr/spinnerItemStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:singleLine="true"
android:textColor="@color/tabDark" />

所以享受:)

于 2012-10-09T05:25:42.300 回答