代码之家  ›  专栏  ›  技术社区  ›  mpsbhat

在Android ListView中设置项目的背景色

  •  0
  • mpsbhat  · 技术社区  · 6 年前

    我们有一个带有以下适配器代码的androd列表视图。

     @Override
        public View getView(int position, View convertView, ViewGroup parent) {
    
            final ViewHolder holder;
            if (convertView == null) {
                holder = new ViewHolder();
                LayoutInflater mInflater = (LayoutInflater) 
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
                convertView = mInflater.inflate(R.layout.single_item, null);
                holder.name = (TextView) convertView
                        .findViewById(R.id.name);
                } else {
                holder = (ViewHolder) convertView.getTag();
            }
      items itm = items.get(position);
    
      Button stat = (Button) convertView.findViewById(R.id.status);
    
      holder.items = itm;
    
      stat.setOnClickListener(new View.OnClickListener()
      {
          @Override
          public void onClick(View v)
          {             
              Intent i = new Intent(context, anotherActivity.class);
              i.putExtra("name", holder.items.getName());
              context.startActivity(i);
          }
      });
      if(itm.getStatus() == 1) {
           convertView.setBackgroundColor(Color.parseColor("#f2dededb"));
           stat.setText("No");
           stat.setEnabled(false);
       }  
      return convertView;
     }
    

    该列表有几个项,我们正在尝试基于某个标志设置特定项的背景色。但是颜色是随机设置的。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Prithvi Bhola    6 年前

    你必须设置 color 其他项目也一样

    if(itm.getStatus() == 1) {
                convertView.setBackgroundColor(Color.parseColor("#f2dededb"));
                stat.setText("No");
                stat.setEnabled(false);
    } else {
          convertView.setBackgroundColor(Color.parseColor("//Default color"));
          // Any other code 
    }
    

    如果你正在设置 颜色 任何条件下的物品 ListView / Recyclerview 你必须设置 颜色 也适用于其他项目。(也适用于任何其他条件)

        2
  •  0
  •   AskNilesh    6 年前
    if(itm.getStatus() == 1) {
        convertView.setBackgroundColor(ContextCompat.getColor(context,R.color.colorPrimary);
    
    } else {
        convertView.setBackgroundColor(ContextCompat.getColor(context,R.color.colorPrimary));
    }
    

    您可以根据条件设置颜色。