Android listview改变指定item背景颜色
时间: 2024-04-06 18:09:11 浏览: 21
要改变ListView中特定项的背景颜色,您可以使用自定义适配器来为每个项设置不同的背景颜色。以下是一个示例:
1. 创建自定义适配器MyAdapter:
```java
public class MyAdapter extends ArrayAdapter<String> {
private int[] colors;
public MyAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
colors = new int[objects.size()];
Arrays.fill(colors, Color.WHITE); // 默认所有项的背景颜色为白色
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setBackgroundColor(colors[position]); // 设置指定项的背景颜色
return view;
}
public void setColor(int position, int color) {
colors[position] = color;
notifyDataSetChanged(); // 刷新列表
}
}
```
2. 在Activity中使用自定义适配器:
```java
public class MainActivity extends AppCompatActivity {
private ListView listView;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
adapter = new MyAdapter(this, android.R.layout.simple_list_item_1, Arrays.asList("Item 1", "Item 2", "Item 3"));
listView.setAdapter(adapter);
// 点击列表项时改变其背景颜色
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
adapter.setColor(position, Color.YELLOW);
}
});
}
}
```
在上述示例中,我们使用自定义适配器MyAdapter为ListView设置不同的背景颜色,并在Activity中通过设置ItemClickListener来改变指定项的背景颜色。您可以根据自己的需求修改自定义适配器的代码,以适应不同的场景。