在对应的bean类中写入是否选中状态
boolean isSelect=false;
//然后get,set一下就好
先写好颜色
一个为选中状态,一个为未选中状态
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="true_sel">#e7d8c2fd</color>
<color name="false_sel">#ffffff</color>
</resources>
sel
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/true_sel" android:state_selected="true" />
<item android:drawable="@color/false_sel" android:state_selected="false" />
</selector>
默认选择下标为0的那个为选中状态
fenleiBean.getResult().get(0).setIsSelect(true);
写在Adapter里面的
viewHolder.itemView.setSelected(leftBean.get(i).getIsSelect());
写在Adapter里面点击事件里面,使用接口回调
//可以不“-1”,因为这个是下标问题,有的不用“-1”
callBack.onCall(leftBean.get(viewHolder.getAdapterPosition() - 1).getId());
for (int j = 0; j < leftBean.size(); j++) {
leftBean.get(j).setIsSelect(i == j);
}
notifyDataSetChanged();
@Override
public void getData(String data) {
Gson gson = new Gson();
fenleiBean = gson.fromJson(data, FenleiBean.class);
result = fenleiBean.getResult();
fenleiAdapter = new FenleiAdapter(this, result);
fenlei.setAdapter(fenleiAdapter);
fenleiBean.getResult().get(0).setIsSelect(true);
fenleiAdapter.getCall(new FenleiAdapter.CallBack() {
@Override
public void onCall(String position) {
presenter.getUrlDedalis(shangpinUrl + position);
}
});
//添加
for (int i = 0; i < result.size(); i++) {
LeftBean leftBean = new LeftBean();
leftBean.setPid(Long.valueOf(result.get(i).getId()));
leftBean.setId(result.get(i).getId());
leftBean.setName(result.get(i).getName());
leftBeanDao.insertOrReplace(leftBean);
//查询
QueryBuilder<LeftBean> builder = leftBeanDao.queryBuilder();
List<LeftBean> list = builder.where(LeftBeanDao.Properties.Name.eq(result.get(i).getName()))
.orderAsc(LeftBeanDao.Properties.Name)
.list();
for (Object o : list) {
if (o instanceof LeftBean) {
Toast.makeText(this, ((LeftBean) o).getName(), Toast.LENGTH_SHORT).show();
}
}
}
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i) {
viewHolder.itemView.setSelected(leftBean.get(i).getIsSelect());
viewHolder.text.setText(leftBean.get(i).getName());
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bean bean = new Bean();
String id = leftBean.get(i).getId();
Long ids = Long.parseLong(leftBean.get(i).getId());
bean.setId(id);
bean.setIds(ids);
EventBus.getDefault().post(bean);
callBack.onCall(leftBean.get(viewHolder.getAdapterPosition() - 1).getId());
for (int j = 0; j < leftBean.size(); j++) {
leftBean.get(j).setIsSelect(i == j);
}
notifyDataSetChanged();
}
});
}
public void getCall(CallBack callBack) {
this.callBack = callBack;
}
public interface CallBack {
void onCall(String position);
}