【问题标题】:change text color in spinner更改微调器中的文本颜色
【发布时间】:2018-03-26 21:18:05
【问题描述】:

我想在 dropView 中更改文本微调器中的文本颜色。我试图覆盖 getDropDownView 方法并更改文本颜色,但它不起作用。

SimpleCursorAdapter adapter = new SimpleCursorAdapter(
            this,
            android.R.layout.simple_spinner_item,
            extendedCursor, from, to, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER) {

        @Override
        public View getDropDownView(int position, View convertView,android.view.ViewGroup parent){
            View v = convertView;
            if (v == null) {
                Context mContext = AddEditLoadActivity.this;
                LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                // Androids orginal spinner view item
                v = vi.inflate(android.R.layout.simple_spinner_dropdown_item, null);
            }
            // The text view of the spinner list view
            TextView tv = (TextView) v.findViewById(android.R.id.text1);


            boolean disabled = !isEnabled(position);
            if(disabled){tv.setTextColor(Color.WHITE);}
            else{tv.setTextColor(Color.WHITE);}

            return v;
        }

        @Override
        public long getItemId(int position) {
            extendedCursor.moveToPosition(position);
            return extendedCursor.getLong(extendedCursor.getColumnIndex(DatabaseContract.DictionaryTable.ITEM_ID));
        }
    };

【问题讨论】:

    标签: java android android-spinner


    【解决方案1】:

    android.R.layout.simple_spinner_item 微调适配器中的这一行使用默认行为,尝试使用自定义布局更改文本颜色。

    <?xml version="1.0" encoding="utf-8"?>
    <TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?attr/spinnerDropDownItemStyle"
    android:layout_width="match_parent"
    android:layout_height="?attr/dropdownListPreferredItemHeight"
    android:ellipsize="marquee"
    android:singleLine="true"
    android:textColor="@color/your_color" />
    

    确保其 id 为 @android:id/text1 并且不要更改。

    【讨论】:

    【解决方案2】:

    使用自己的自定义布局

    1. 创建一个名为spinner_row.xml的布局

      <?xml version="1.0" encoding="utf-8"?>
          <TextView
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent" 
              android:layout_height="match_parent"
              android:background="#316FA2"
              android:textSize="12sp"
              android:gravity="left"
              android:singleLine="true"
              android:padding="6dip"
              android:textColor="@color/white" />///you can add your color 
      />
      
    2. android.R.layout 替换为R.layout.spinner_row.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多