这个是Activity的调用
import kotlinx.android.synthetic.main.activity_search_detail.*
class SearchDetailActivity : BaseActivity(), SearchDetailAdapter.OnItemClick {
val mdata: ArrayList<String> = ArrayList<String>()
var adapter: SearchDetailAdapter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_search_detail)
setStatusBarColor()
initRecyclerView()
initData()
}
private fun initRecyclerView() {
adapter = SearchDetailAdapter(this@SearchDetailActivity, mdata)
mRecyclerView.layoutManager = LinearLayoutManager(this@SearchDetailActivity)
mRecyclerView.addItemDecoration(DividerItemDecoration(this@SearchDetailActivity, DividerItemDecoration.VERTICAL))
mRecyclerView.adapter = adapter
adapter!!.setOnItemClick(this)
}
override fun setOnItemClick(view: View?, position: Int) {
Utils.log("TAG", "item")
when (view!!.id) {
R.id.tv_record -> Utils.log("TAGG", "tv_record")
R.id.tv_delete -> Utils.log("TAG", "tv_delete")
else -> Utils.log("TAG", "item")
}
}
private fun initData() {
mdata.clear()
for (i in 1..10) {
mdata.add("数据" + i)
}
adapter?.notifyDataSetChanged()
}
}
这个是adapter的内容
public class SearchDetailAdapter extends RecyclerView.Adapter<SearchDetailAdapter.Holder> implements View.OnClickListener {
private List<String> mdata ;
private Context mContext;
public SearchDetailAdapter( Context mContext,List<String> mdata) {
this.mdata = mdata;
this.mContext = mContext;
}
@NonNull
@Override
public Holder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(viewGroup.getContext(),R.layout.search_item,null);
view.setOnClickListener(this);
Holder holder = new Holder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull Holder holder, int i) {
holder.textView.setText(mdata.get(i));
holder.textView.setTag(i);
holder.tv_delete.setTag(i);
holder.itemView.setTag(i);
}
@Override
public int getItemCount() {
return mdata.size();
}
public class Holder extends RecyclerView.ViewHolder{
private TextView textView;
private ImageView tv_delete;
public Holder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.tv_record);
textView.setOnClickListener(SearchDetailAdapter.this::onClick);
tv_delete = itemView.findViewById(R.id.tv_delete);
tv_delete.setOnClickListener(SearchDetailAdapter.this::onClick);
}
}
public interface OnItemClick{
void setOnItemClick(View view,int position);
}
private OnItemClick onItemClick;
public void setOnItemClick(OnItemClick onItemClick) {
this.onItemClick = onItemClick;
}
public OnItemClick getOnItemClick() {
return onItemClick;
}
@Override
public void onClick(View view) {
if (onItemClick!=null){
int position = (int) view.getTag();
Log.e("TAg","position"+position);
switch (view.getId()){
case R.id.tvRecord:
onItemClick.setOnItemClick(view,position);
Log.e("TAg","tvRecord走了吗");
break;
case R.id.tv_delete:
onItemClick.setOnItemClick(view,position);
break;
default:
onItemClick.setOnItemClick(view,position);
Log.e("TAg","onItemClick走了吗");
break;
}
// onItemClick.setOnItemClick(view, (Integer) view.getTag());
}
}
}