java gridview 选中其中一个item 并改变样式
时间: 2024-03-03 18:49:29 浏览: 62
GridView的item的不同的样式
4星 · 用户满意度95%
要实现选中 GridView 中的一个 item 并改变其样式,可以通过自定义 Adapter 来实现。具体步骤如下:
1. 创建自定义 Adapter 并继承 BaseAdapter。
2. 在 getView() 方法中判断当前 item 是否被选中,如果被选中则改变其样式。
3. 在 GridView 的 OnItemClickListener 中记录被选中的 item,并通知 Adapter 数据已更改。
以下是一个示例代码:
```java
public class MyAdapter extends BaseAdapter {
private Context mContext;
private List<String> mData;
private int mSelectedPosition = -1;
public MyAdapter(Context context, List<String> data) {
mContext = context;
mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView;
if (convertView == null) {
textView = new TextView(mContext);
textView.setLayoutParams(new GridView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
} else {
textView = (TextView) convertView;
}
textView.setText(mData.get(position));
if (position == mSelectedPosition) {
textView.setBackgroundColor(Color.BLUE);
textView.setTextColor(Color.WHITE);
} else {
textView.setBackgroundColor(Color.WHITE);
textView.setTextColor(Color.BLACK);
}
return textView;
}
public void setSelectedPosition(int position) {
mSelectedPosition = position;
notifyDataSetChanged();
}
}
```
在 GridView 中设置 OnItemClickListener:
```java
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mAdapter.setSelectedPosition(position);
}
});
```
在 setSelectedPosition() 中记录选中的 position,并通知 Adapter 数据已更改,Adapter 会自动调用 getView() 来更新 item 的样式。
阅读全文