RecyclerView Item點選事件實現 類似GridView
阿新 • • 發佈:2019-01-11
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) {
}
});