listview整行高亮
时间: 2023-10-31 20:06:43 浏览: 47
要实现ListView整行高亮,可以通过自定义ListView的适配器来实现。以下是一个简单的示例代码:
```java
// 自定义适配器
public class MyAdapter extends ArrayAdapter<String> {
private int selectedPosition = -1;
public MyAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
// 根据选中位置设置背景颜色
if (position == selectedPosition) {
view.setBackgroundColor(Color.parseColor("#FFD700")); // 设置为黄色,你可以根据需求修改颜色
} else {
view.setBackgroundColor(Color.TRANSPARENT); // 设置为透明
}
return view;
}
public void setSelectedPosition(int position) {
selectedPosition = position;
notifyDataSetChanged(); // 刷新列表
}
}
```
然后在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.listView);
List<String> data = new ArrayList<>();
// 添加数据
adapter = new MyAdapter(this, android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
// 设置点击事件,点击时高亮选中行
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
adapter.setSelectedPosition(position);
}
});
}
}
```
以上代码中的`MyAdapter`是自定义的适配器,继承自`ArrayAdapter`,通过重写`getView()`方法来设置ListView的行背景颜色。在Activity中,设置点击事件监听器,在点击时调用`setSelectedPosition()`方法来设置选中行的位置,并刷新列表。这样就可以实现ListView整行高亮了。