【问题标题】:Change TextView colour and text in getView(...) in ListView adapter在 ListView 适配器的 getView(...) 中更改 TextView 颜色和文本
【发布时间】: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 谢谢。您能否发表您的评论作为带有解释的答案,以便我接受。另外,当我使用上述内容时,我第二次施放它时,我会收到通知说它是多余的。怎么样?

标签: android android-listview textview android-adapter classcastexception


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多