首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Listview中设置textview的背景色

如何在Listview中设置textview的背景色
EN

Stack Overflow用户
提问于 2016-09-04 21:26:35
回答 1查看 204关注 0票数 0

我正在尝试突出显示ListView中的某些字符串。因此,我尝试设置TextView的背景色,这是该ListView的实际元素,然而,下面使用setBackgroundResource和setBackgroundColor的代码不会产生任何更改,而是默认的颜色设置。我做错了什么?我也可以接受其他设计方案,如何在Listview中实现单个条目的高亮显示。

提前谢谢你!

代码语言:javascript
复制
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d(LOG_TAG, "Enter onCreate");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dao = MealDAO.getInstance(this);
        List<Meal> mealList = dao.getAllMeals();

        mealListeAdapter = new ArrayAdapter<>(
                this, // Die aktuelle Umgebung (diese Activity)
                R.layout.meal_list_item, // ID der XML-Layout Datei
                R.id.meal_list_item_textview, // ID des TextViews
                mealList); // Beispieldaten in einer ArrayList

        ListView mealListView = (ListView) findViewById(R.id.listview_mealliste);
        mealListView.setAdapter(mealListeAdapter);

        for(int i=0; i<mealList.size(); i++) {
            Meal meal = mealList.get(i);
            if(meal.toString().indexOf("(!)") > 0) {
                TextView view = (TextView) mealListeAdapter.getView(i, null, null);
                view.setBackgroundResource(R.color.colorAccent);
                view.setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.colorAccent));
            }
        }

        ...
     }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-04 21:57:34

在您的listview适配器上,您可以通过设置view / textview项目的颜色来更改getview函数中的颜色。在我的情况下,它可以用这个来完成。

代码语言:javascript
复制
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
     View rowView;
     if (convertView == null) {
         rowView = getActivity().getLayoutInflater().inflate(
             R.layout.searchitemview, null);
     } else {
         rowView = convertView;
     }


     TextView firstTextView = (TextView) rowView
         .findViewById(R.id.txtTitle);
     firstTextView.setText((position + 1) + ". " +
         items.get(position).first);

     if ((position % 2) == 0) {
         // convertView.setBackgroundColor(color_arr[position]);
         rowView.setBackgroundResource(R.drawable.cell_shapegrey);
     } else {
         rowView.setBackgroundResource(R.drawable.cell_shape);
     }
     TextView batas = (TextView) rowView.findViewById(R.id.batasumur);
     if (items.get(position).fiveth.contains("17")) {
         batas.setBackgroundResource(R.drawable.rounded_red);
     } else if (items.get(position).fiveth.contains("emaja")) {
         batas.setBackgroundResource(R.drawable.rounded_oren);
     } else {
         batas.setBackgroundResource(R.drawable.rounded_green);
     }
     batas.setText(items.get(position).fiveth);
     return rowView;
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39317396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档