ListView改變里面TextView的字體顏色

方法1(ps:這個挺好用的)

  • 先從ListView屬性出發(fā),設(shè)置它為單選 (一定要設(shè)置)
//設(shè)置它為單選
android:choiceMode="singleChoice"
  • ListView的布局文件xml
<ListView
        android:id="@+id/lv_left"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2.5"
        android:layout_gravity="center"
        android:background="#ffffff"
        android:listSelector="@drawable/drawable_listview"
        android:choiceMode="singleChoice"
        android:scrollbars="none">
    </ListView>
  • 設(shè)置它的item布局的selector:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_item_list_view_classif"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:gravity="center"
        android:textColor="@drawable/drawable_list_view_text"
        android:text="測試"/>

</LinearLayout>
  • drawable_list_view_text的布局文件(網(wǎng)上有好多給drawable文件里面設(shè)置多余屬性android:state_activated="true"這個就夠了)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:color="@color/red"/>
    <item android:color="@color/black"/>
</selector>
  • 給ListView一個默認選項(setItemChecked(int position,boolean,checked))
    setItemChecked(int position,boolean)
//給ListView一個默認選項
        listView.setItemChecked(0,true);

方法2

在Adapter里面一定要寫上這句話

//設(shè)置選中效果
        if (selectedPosition == position){
            tvContent.setTextColor(Color.RED);
        }else {
            tvContent.setTextColor(Color.BLACK);
        }
  • 在Activity或Fragment里面調(diào)用一句話
//刷新
 lvdapter.notifyDataSetChanged();
  • Adapter源碼,Adapter繼承BaseAdapter
public class ClassificationFragmentListViewAdapter extends BaseAdapter{

    Context context;
    String[] list;

    private int selectedPosition = -1;
    public void setSelectedPosition(int position) {
        selectedPosition = position;
    }

    public ClassificationFragmentListViewAdapter(Context context, String[] list) {
        this.context = context;
        this.list = list;
    }

    /*
     *listView中顯示的數(shù)據(jù)個數(shù)
     */

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

    /*
     *根據(jù)position獲取一個listView中一個item對象
     */
    @Override
    public Object getItem(int position) {
        return list[position];
    }

    /*
     *根據(jù)position獲取一個listView中一個item位置
     */
    @Override
    public long getItemId(int position) {
        return position;
    }

    /*
     *繪制視圖--1.創(chuàng)建視圖,2.初始化控件,3.填充數(shù)據(jù)
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //第一步 創(chuàng)建視圖 建一個XML文件
        //實例化View對象
        View view = LayoutInflater.from(context).inflate(R.layout.item_list_view_classification, null);
        //第二步
        //初始化控件
        TextView tvContent = (TextView) view.findViewById(R.id.tv_item_list_view_classif);
        //第三步 先獲取數(shù)據(jù)
        //通過position獲取要填充的數(shù)據(jù)(list的item的值)
        String contrnt =list[position];
        //設(shè)置選中效果
        if (selectedPosition == position){
            tvContent.setTextColor(Color.RED);
        }else {
            tvContent.setTextColor(Color.BLACK);
        }
        //將數(shù)據(jù)顯示在控件上
        tvContent.setText(contrnt);
        return view;
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本人初學(xué)Android,最近做了一個實現(xiàn)安卓簡單音樂播放功能的播放器,收獲不少,于是便記錄下來自己的思路與知識總結(jié)...
    落日柳風閱讀 19,465評論 2 41
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,380評論 0 17
  • 簡介 在Android開發(fā)中ListView是比較常用的組件。 以列表的形式展示具體內(nèi)容。 并且能夠根據(jù)數(shù)據(jù)的長度...
    上善若水Ryder閱讀 7,091評論 2 5
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,319評論 25 708
  • 一、工作以后,我才明白自己有多傲慢,自以為是,遇到不懂的,或者沒做過的,都從來不會向別人請教經(jīng)驗或者是看看別人怎么...
    謝馥蔓666閱讀 678評論 0 1

友情鏈接更多精彩內(nèi)容