RecyclerView得点击事件,仅供参考
布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.wangjisen.rvdemo.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="RecyclerView点击事件" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_prize"
android:layout_width="wrap_content"
android:layout_height="76dp"
android:layout_centerInParent="true">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
代码
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
intiData();
}
private void initView() {
recyclerView = (RecyclerView) findViewById(R.id.rl_prize);
}
private void intiData() {
LinearLayoutManager layout = new LinearLayoutManager(this);
layout.setOrientation(LinearLayoutManager.HORIZONTAL);
recyclerView.setLayoutManager(layout);
List list = new ArrayList();
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
list.add(R.mipmap.ic_launcher);
RecyclerviewHorizontalJuryAdapter adapter =
new RecyclerviewHorizontalJuryAdapter(this, list);
RecyclerViewCallback recyclerViewCallback = new RecyclerViewCallback() {
@Override
public void onItemClick(View itemView, int position) {
Toast.makeText(MainActivity.this,"点我:" + position,Toast.LENGTH_SHORT).show();
}
};
adapter.setOnMyClickListener(recyclerViewCallback);
recyclerView.setAdapter(adapter);
}
}
adapter
public class RecyclerviewHorizontalJuryAdapter extends RecyclerView.Adapter<RecyclerviewHorizontalJuryAdapter.ViewHloder> {
private List list;
private Context context;
private RecyclerViewCallback callback;
/**
* 注册接口
*/
public void setOnMyClickListener(RecyclerViewCallback callback) {
this.callback = callback;
}
public RecyclerviewHorizontalJuryAdapter(Context context, List list) {
this.context = context;
this.list = list;
}
@Override
public ViewHloder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHloder(LayoutInflater.from(context).inflate(R.layout.rv_item, parent, false));
}
@Override
public void onBindViewHolder(final ViewHloder holder, final int position) {
//通过itemview得到每个图片的pararms对象
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) holder.itemView.getLayoutParams();
//设置修改参数
holder.itemView.setLayoutParams(params);
holder.ivAvatar.setBackgroundResource((Integer) list.get(position));
holder.itemView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//当点击item时回调onItemClick函数,处理点击事件。
callback.onItemClick(view, position);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHloder extends RecyclerView.ViewHolder {
ImageView ivAvatar;
public ViewHloder(View itemView) {
super(itemView);
ivAvatar = (ImageView) itemView.findViewById(R.id.iv_avatar);
}
}
}
回调
public interface RecyclerViewCallback {
public void onItemClick(View itemView, int position);
}