在 ListView 适配器的 getView(...) 中更改 TextView 颜色和文本

Posted

技术标签:

【中文标题】在 ListView 适配器的 getView(...) 中更改 TextView 颜色和文本【英文标题】:Change TextView colour and text in getView(...) in ListView adapter 【发布时间】:2015-07-12 23:21:50 【问题描述】:

我已经搜索过这个,我可以找到我需要的确切答案......

我有一个导航抽屉ListView,当我在列表中单击一个项目时,我希望能够从中获取TextView,并更改其背景颜色、文本颜色并使文本加粗.

我尝试通过执行以下操作获取TextView

adapter_navList = new ArrayAdapter<String>(this, R.layout.listview_navdrawer, drawerItems) 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
        View view = super.getView(position, convertView, parent);

        TextView item = (TextView) lv_navList.getItemAtPosition(i); 
        // Code to set the background, formatting, colour, etc.

        return view;
    
;
lv_navList.setAdapter(adapter_navList);

但是,我不断收到以下错误:

java.lang.ClassCastException: java.lang.String 无法转换为 android.widget.TextView

我该如何解决这个问题?

【问题讨论】:

请使用 TextView item = (TextView) adapter_navList.getItemAtPosition(i)。 @JayShah 这不起作用 - 无法解析方法 'getItemAtPosition(int)'。 好的,你已经将arrayadapter设置为你的listview。所以你的视图已经是textview了。你可以像下面这样使用它:: ((TextView)view).setTypeface(font); ((TextView)view).setTextColor(Color.BLUE);希望这对你有帮助.. @JayShah 谢谢。您能否发表您的评论作为带有解释的答案,以便我接受。另外,当我使用上述内容时,我第二次施放它时,我会收到通知说它是多余的。怎么样? 【参考方案1】:

您可以使用以下内容:

adapter_navList = new ArrayAdapter<String>(this, R.layout.listview_navdrawer, drawerItems) 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
        View view = super.getView(position, convertView, parent);

        TextView mytextview=(TextView)view;
        mytextview.setTextColor(Color.BLUE); 
        mytextview.setTextSize(14);
        // Other code you may want to add

        return view;
    
;
lv_navList.setAdapter(adapter_navList);

【讨论】:

以上是关于在 ListView 适配器的 getView(...) 中更改 TextView 颜色和文本的主要内容,如果未能解决你的问题,请参考以下文章

Android:从 viewPager 中的 Fragment 为 ListView 的适配器调用 getview()

Listview 没有被填充,getView() 没有被调用

Android ListView 不调用适配器的类 getView() 函数

关于listview适配器getview的详细说明

Android - 通过 getView 函数在自定义 listView 适配器内设置 ImageView 的源无法正常工作

适用于Android ListView的适配器类getView()函数