Android ListView更改行颜色值(不选择)

时间:2017-12-23 19:05:53

标签: android listview firebase

一切正常。即,从Firebase读取数据并显示在FirebaseListAdapter中。

以下是有问题的代码

        int urg = model.getUrgency();
        if(urg == 1) v.setBackgroundColor(Color.RED);

问题是它是否随机地将更多行的颜色变为红色。即对于我的测试我只有1条记录有urg = 1.但是当我滚动时,超过1行变成红色。我该如何解决?

private void refreshListView(){

    fbAdapter = new FirebaseListAdapter<Post>(this, Post.class,R.layout.post_message, query) {
        @Override
        protected void populateView(View v, Post model, int position) {
            TextView messageText = (TextView)v.findViewById(R.id.message_text);
            TextView messageTime = (TextView)v.findViewById(R.id.message_time);

            messageText.setText(model.getMessageText());
            messageTime.setText(shortTime.format(model.getPostTimeStamp()));
            int urg = model.getUrgency();
            if(urg == 1) v.setBackgroundColor(Color.RED);
        }
    };

    mListView.setAdapter(fbAdapter);
    mListView.requestFocus();
}

1 个答案:

答案 0 :(得分:1)

多行中出现红色的原因是,没有其他块。添加else块将解决此问题。

 int urg = model.getUrgency();
 if(urg == 1){
     v.setBackgroundColor(Color.RED);
 }else{
     v.setBackgroundColor(Color.WHITE);
 }