android gridview 选中其中一个item的linearlayout,setSelected(true)无效
时间: 2024-03-03 14:49:40 浏览: 30
当你在 `GridView` 中选中一个 `LinearLayout` 时,`setSelected(true)` 可能无效,这是因为 `GridView` 会重用 `LinearLayout`,并且可能会在其中一个 `LinearLayout` 上调用 `setSelected(false)`,导致你原来设置的 `setSelected(true)` 失效。
为了解决这个问题,你可以在 `GridView` 的适配器中,记录哪一个 `LinearLayout` 被选中,并在 `getView` 方法中根据选中状态来设置 `setSelected`:
```java
public class MyAdapter extends BaseAdapter {
private int selectedPosition = -1;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ...
LinearLayout linearLayout = (LinearLayout) convertView.findViewById(R.id.linear_layout);
if (position == selectedPosition) {
linearLayout.setSelected(true);
} else {
linearLayout.setSelected(false);
}
// ...
}
public void setSelectedPosition(int position) {
selectedPosition = position;
notifyDataSetChanged();
}
}
```
在你的 `GridView` 中,当选中一个 `LinearLayout` 时,你可以调用适配器的 `setSelectedPosition` 方法来设置选中位置,然后刷新适配器即可:
```java
myAdapter.setSelectedPosition(position);
myAdapter.notifyDataSetChanged();
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)