通过不断的做项目我学习了很多的知识.
重新修改一下recyclerview 中点击事件的书写方式
package com.yhbj.emtyh.ui.myselfactivuty.mypersonalAdapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.yhbj.emtyh.R;
import com.yhbj.emtyh.model.MessageBean;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
/**
* Created by 许康
* 2018\6\9 0009
* descurpe
*/
public class textAdapter extends RecyclerView.Adapter<textAdapter.ButtonViewHolder> {
private List<MessageBean.ListBean> data = new ArrayList<>();
private Context context;
private LayoutInflater mlayoutInflater;
public textAdapter(Context context) {
this.context = context;
this.mlayoutInflater = LayoutInflater.from(context);
}
@Override
public ButtonViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ButtonViewHolder(mlayoutInflater.inflate(R.layout.message_activity_item, parent, false));
}
@Override
public void onBindViewHolder(ButtonViewHolder holder, int position) {
//在控件绑定的这里做事件的点击监听
holder.messageTwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickLinter!=null){//这里的position在activity中位置是确定
onItemClickLinter.setItemOnItemClick(v,position);
}
}
});
}
@Override
public int getItemCount() {
return 0;
}
public class ButtonViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.message_two)
TextView messageTwo;
@BindView(R.id.message_title)
TextView messageTitle;
@BindView(R.id.message_content)
TextView messageContent;
public ButtonViewHolder(View itemView) {
super(itemView);
//可以在这里进行控件的点击时间的获取;缺点是position位置不在activity中是(position-1)
messageTwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickLinter!=null){
onItemClickLinter.setItemOnItemClick(v,getPosition());
onItemClickLinter.setItemOnItemClick(v,getPosition(),1);
}
}
});
}
}
//创建事件点击的准备工作
private onItemClickLinter onItemClickLinter;
public interface onItemClickLinter {
void setItemOnItemClick(View view, int position);
void setItemOnItemClick(View view, int position, int flag);
}
public void setOnItemClickLinter(onItemClickLinter onItemClickLinter) {
this.onItemClickLinter = onItemClickLinter;
}
}
都可以使用看个人的爱好