1.RepairAdapter.java
public class RepairAdapter extends RecyclerView.Adapter<RepairAdapter.ViewHolder> {
private Context context;
private List<RepairBean> mData;
private SeeAbnormalAdapter.OnItemClickListener onItemClickListener1;
public RepairAdapter(List<RepairBean> data,Context context){
this.mData = data;
this.context = context;
}
public void setOnItemClickListener1(SeeAbnormalAdapter.OnItemClickListener listener) {
this.onItemClickListener1 = listener;
}
public class ViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.repair_item_click)
LinearLayout repair_item_click;
@Bind(R.id.item_repair_ll)
LinearLayout item_repair_ll;
@Bind(R.id.item_repair_machine_tv)
TextView item_repair_machine_tv;
@Bind(R.id.repair_situation_ll)
LinearLayout repair_situation_ll;
@Bind(R.id.item_repair_complete_ll)
LinearLayout item_repair_complete_ll;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
@NonNull
@Override
public RepairAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_adapter_repair, parent, false);
RepairAdapter.ViewHolder viewHolder = new RepairAdapter.ViewHolder(view);
return viewHolder;
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onBindViewHolder(@NonNull RepairAdapter.ViewHolder holder, int position) {
//对设备赋值
holder.item_repair_machine_tv.setText(mData.get(position).getEquipmentName());
RepairBean repairBean =mData.get(position);
//对两个按钮监听 检修说明提交成功后,处理完成按钮才能点击
if (repairBean.getRemarks().isEmpty()){
holder.item_repair_complete_ll.setVisibility(View.GONE);
}else {
holder.item_repair_complete_ll.setVisibility(View.VISIBLE);
}
holder.repair_situation_ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onItemClickListener1 != null){
onItemClickListener1.onItemClick(view,position);//检修情况说明按钮
}
}
});
holder.item_repair_complete_ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onItemClickListener1 != null){
onItemClickListener1.onItemClick(view,position);//检修情况说明按钮
}
}
});
}
@Override
public int getItemCount() {
return mData == null ? 8: mData.size();
}
}
2.RepairBean.java
package com.hsit.tools.fk.equiprepair.bean;
public class RepairBean {
private String remarks="";
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
}
3.RepairActivity.java部分代码
//点击item里的检修情况说明按钮 弹出edit对话框
private void setItemClick() {
repairAdapter.setOnItemClickListener1(new SeeAbnormalAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
if (view.getId() == R.id.item_repair_complete_ll) {
//这里写上传
new XPopup.Builder(RepairActivity.this)
.asConfirm(
"提示",
"是否处理完成?",
new OnConfirmListener() {
@Override
public void onConfirm() {
//接口6
saveRepairInfo(position);
}
}
)
.show();
}
if (view.getId() == R.id.repair_situation_ll) {
new XPopup.Builder(RepairActivity.this)
.autoOpenSoftInput(true)//唤起键盘
.isRequestFocus(false)
.asInputConfirm("检修情况说明", "请输入检修情况", repairList.get(position).getRemarks(), "检修情况可更改!",
new OnInputConfirmListener() {
@Override
public void onConfirm(String text) {
if (text.length() > 0 && text != null) {
repairList.get(position).setRemarks(text);
repairAdapter.notifyDataSetChanged();
//上传取消原因接口函数
ToastUtil.showToast(RepairActivity.this, "检修情况说明保存成功");
} else {
ToastUtil.showToast(RepairActivity.this, "检修情况说明不能为空");
}
}
})
.show();
}
}
});
}
4.怎么实现的
(1)在bean里加了remarks
(2)对item里多个按钮监听 View.getId
(3)对检修说明的监听view.getId; 获取到的值给list.setRemarks ;adapte.notifinotifyDataSetChanged自动更新adapter
(4) 声明repairBean 判断remaks的值 为空的时候 检修完成按钮不显示
(5)Adapter里同一个监听 不同按钮