首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改一个listView项目的背景颜色

如何更改一个listView项目的背景颜色
EN

Stack Overflow用户
提问于 2018-06-02 02:54:48
回答 3查看 870关注 0票数 1

我只想更改listView的one项的颜色背景,我目前有:

代码语言:javascript
复制
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(parentActivity, android.R.layout.simple_list_item_1, accountList) {


      @Override
     public View getView(int position, View convertView, ViewGroup parent) {
         View view = super.getView(position, convertView, parent);
              ViewGroup.LayoutParams params = view.getLayoutParams();
              view.setLayoutParams(params);

              TextView textview = (TextView) view;
              textview.setTextSize(15);
              textview.setGravity(Gravity.CENTER);
              textview.setTextColor(Color.WHITE);

              int p = 0;

               for (Accounts c : Register.getAccounts()) {
               if (c.getNumber().equals(accountNumber) && (position == p)){

                  view.setBackgroundResource(R.color.colorPrimaryDark);

               }
          p++;
        }

   return textview;
   }
};

listView.setAdapter(adapter);

说明:我有一个用户拥有的关联帐户列表,我需要更改当时处于活动状态的帐户的背景颜色,问题是:

代码语言:javascript
复制
view.setBackgroundResource(R.color.colorPrimaryDark);

正在设置listView的多个元素,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-05 01:40:21

我更改了你的代码,试试这个

代码语言:javascript
复制
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(parentActivity, android.R.layout.simple_list_item_1, accountList) {


        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = super.getView(position, convertView, parent);
            ViewGroup.LayoutParams params = view.getLayoutParams();
            view.setLayoutParams(params);

            TextView textview = (TextView) view;
            textview.setTextSize(15);
            textview.setGravity(Gravity.CENTER);
            textview.setTextColor(Color.WHITE);


                if (Register.getAccounts().get(position).getNumber().equals(accountNumber) ){

                    textview.setBackgroundResource(R.color.colorPrimaryDark);

                }else textview.setBackgroundResource(0);



            return textview;
        }
    };

    listView.setAdapter(adapter);
票数 3
EN

Stack Overflow用户

发布于 2018-06-02 03:33:29

尝试省略p和它的条件。

代码语言:javascript
复制
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(parentActivity, android.R.layout.simple_list_item_1, accountList) {


  @Override
 public View getView(int position, View convertView, ViewGroup parent) {
     View view = super.getView(position, convertView, parent);
          ViewGroup.LayoutParams params = view.getLayoutParams();
          view.setLayoutParams(params);

          TextView textview = (TextView) view;
          textview.setTextSize(15);
          textview.setGravity(Gravity.CENTER);
          textview.setTextColor(Color.WHITE);

           if (Register.getAccounts().get(position).equals(accountNumber)){

              view.setBackgroundResource(R.color.colorPrimaryDark);

           }

   return textview;
   }
};

listView.setAdapter(adapter);
票数 0
EN

Stack Overflow用户

发布于 2018-06-02 04:45:26

你需要在你的条件中添加一个"else“分支

代码语言:javascript
复制
if (c.getNumber().equals(accountNumber)){
   view.setBackgroundResource(R.color.colorPrimaryDark);
} else {
  view.setBackgroundResource(R.color.white);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50649534

复制
相关文章

相似问题

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