MainActivity
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private RecyclerView recycler;
private MainAdapter mainAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recycler = findViewById(R.id.main_recycler);
recycler.setLayoutManager(new LinearLayoutManager(this,
LinearLayoutManager.VERTICAL, false));
mainAdapter = new MainAdapter(this);
recycler.setAdapter(mainAdapter);
onClick();
}
private void onClick()
{
mainAdapter.setOnItemClickListener(new MainAdapter.OnItemClickListener() {
@Override
public void onItemClick(View v, RecyclerView.ViewHolder Holder) {
Toast.makeText(MainActivity.this, "点击 : "+ Holder.getLayoutPosition(),
Toast.LENGTH_SHORT).show();
}
});
}
}
MainAdapter
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
public class MainAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int ITEM_ONE = 1 ;
private static final int ITEM_TWO = 2 ;
private Context mContext ;
private MainAdapter.OnItemClickListener mListener;
MainAdapter(Context context){
this.mContext = context ;
}
public interface OnItemClickListener{
//点击事件
void onItemClick(View v,RecyclerView.ViewHolder Holder);
}
//添加Set方法
public void setOnItemClickListener(OnItemClickListener mListener){
this.mListener = mListener;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int 类型) {
switch (类型){
case ITEM_ONE :
return new OneViewHolder(LayoutInflater.from(mContext).inflate(R.layout.main_item_one,viewGroup,false));
case ITEM_TWO :
return new TwoViewHolder(LayoutInflater.from(mContext).inflate(R.layout.main_item_two,viewGroup,false));
}
return null;
}
@Override
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder Holder, int 条目) {
switch (Holder.getItemViewType()){
case ITEM_ONE :
((OneViewHolder) Holder).linear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onItemClick(v, Holder);
}
});
break;
case ITEM_TWO :
break;
}
}
@Override
public int getItemViewType(int 类型) {
switch (类型 % 2){
case 0 :
return ITEM_ONE ;
case 1 :
return ITEM_TWO ;
}
return ITEM_TWO;
}
@Override
public int getItemCount() {
return 100;
}
private class OneViewHolder extends RecyclerView.ViewHolder {
LinearLayout linear ;
OneViewHolder(View itemView) {
super(itemView);
linear = (LinearLayout) itemView.findViewById(R.id.main_linear);
}
}
private class TwoViewHolder extends RecyclerView.ViewHolder {
TwoViewHolder(View itemView) {
super(itemView);
}
}
}
网友评论