1. 程式人生 > >RecyclerView Item點選事件實現 類似GridView

RecyclerView Item點選事件實現 類似GridView

RecyclerView Item點選事件實現,請看程式碼

package sample.mars.com.androidutsample.view;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.List;

import sample.mars.com.androidutsample.R;

public
class ExampleAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { Context context; List<String> data; private final LayoutInflater inflater; private OnItemClickListener onItemClickListener; public ExampleAdapter(Context context, List<String> data) { this
.context = context; this.data = data; inflater = LayoutInflater.from(context); } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener; } @Override public RecyclerView.ViewHolder onCreateViewHolder
(ViewGroup parent, int viewType) { return new ExampleViewHolder(inflater.inflate(R.layout.example_layout, parent, false)); } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onItemClickListener != null) { onItemClickListener.onItemClick(ExampleAdapter.this, v, holder.getAdapterPosition(), v.getId()); } } }); } @Override public int getItemCount() { return data.size(); } public interface OnItemClickListener { void onItemClick(RecyclerView.Adapter adapter, View itemView, int position, long id); } }

初始化的時候

ExampleAdapter adapter = new ExampleAdapter(MainActivity.this, new ArrayList<String>());
        adapter.setOnItemClickListener(new ExampleAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(RecyclerView.Adapter adapter, View itemView, int position, long id) {

            }
        });