在 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() 函数
Android - 通过 getView 函数在自定义 listView 适配器内设置 ImageView 的源无法正常工作