list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
View v = parent.getChildAt(position);
TextView fileName = (TextView) v.findViewById(R.id.file_name);
fileName.setTextColor(Color.BLUE);
}
});
OnItemClick(),我将项目元素的文本颜色设置为蓝色(file_name)。Android:如何永久修改ListView的子项(View) - 滚动后颜色会丢失
滚动列表视图此之后,新的颜色(蓝色)丢失(它被重置为默认颜色)
为什么?我必须以某种方式更改与ListView关联的适配器吗?
编辑:FileListAdapter(用于填充的ListView)
package com.landa.adapter;
import java.io.File;
public class FileListAdapter extends BaseAdapter {
private final Context context;
private final File[] data;
public FileListAdapter(Context context, File[] values) {
this.context = context;
this.data = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.list_row, parent, false);
File f = data[position];
TextView textView = (TextView) rowView.findViewById(R.id.file_name);
TextView fullPath = (TextView) rowView.findViewById(R.id.full_path);
ImageView imageView = (ImageView) rowView.findViewById(R.id.file_image);
textView.setText(f.getName());
fullPath.setText(f.getAbsolutePath());
imageView.setImageResource(
BrowseHandler.getFileIconResourceId(f.getAbsolutePath()));
return rowView;
}
public int getCount() {
return data.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
}
您能否再详述一下?我有我的自定义适配器,我会发布它。 – Tool 2013-02-27 12:56:46
@Tool好主意让我们来看看适配器 – 2013-02-27 12:58:14
根据您发布的教程,我确定了一个问题。也许我不应该一直膨胀视图,但只有当converView为空时。 – Tool 2013-02-27 13:02:40