gpt4 book ai didi

android - 为什么当我只设置一个要更改的单元格时, ListView 中的另一个单元格也会改变颜色?

转载 作者:行者123 更新时间:2023-11-29 22:02:31 25 4
gpt4 key购买 nike

我有一个很长的 ListView ,我尝试更改特定单元格中的颜色,例如位置 == 0,它工作正常。但是当我向下滚动列表时,之前屏幕外的另一个单元格也发生了变化。任何想法?谢谢你的帮助

public class CheckWinNoAdapter extends ArrayAdapter<String> {
private final Context context;
private String[] values;
TextView tvMain;




public CheckWinNoAdapter(Context context, String[] values) {
// TODO Auto-generated constructor stub
super(context, R.layout.list_draw, values);
this.context = context;
this.values = values;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = inflater.inflate(R.layout.list_draw, parent, false);
}

tvMain = (TextView) convertView.findViewById(R.id.chk_main);
tvMain.setText(values[position]);



if(position ==0){
tvMain.setTextColor(Color.BLUE);
}

return convertView;

最佳答案

您通过重用convertView 来回收 View ,您必须始终在getView() 中设置颜色,例如

if (position == 0) {
tvMain.setTextColor(Color.BLUE);
} else {
// set color back to original color
tvMain.setTextColor(Color.BLACK);
}

参见 http://lucasr.org/2012/04/05/performance-tips-for-androids-listview/

关于android - 为什么当我只设置一个要更改的单元格时, ListView 中的另一个单元格也会改变颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11598442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com