adapter
package com.example.lineardemorecyclerview.adapter;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.lineardemorecyclerview.R;
import java.util.ArrayList;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener{
private ArrayList<String> mList;
public MyAdapter(ArrayList<String> mList) {
this.mList = mList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=View.inflate(viewGroup.getContext(),R.layout.recy_item,null);
ViewHolder holder=new ViewHolder(view);
view.setOnClickListener(this);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.mName.setText(mList.get(i));
viewHolder.itemView.setTag(i);
}
@Override
public int getItemCount() {
return mList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView mName;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mName=itemView.findViewById(R.id.recy_name);
}
}
public interface ItemClick{
void setOnItemClick(View view,int i);
}
private ItemClick mItemClick;
public void setOnClickListener(ItemClick itemClick){
this.mItemClick=itemClick;
}
@Override
public void onClick(View v) {
if(mItemClick!=null){
mItemClick.setOnItemClick(v, (Integer) v.getTag());
}
}
}
package com.example.lineardemorecyclerview;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Toast;
import com.example.lineardemorecyclerview.adapter.MyAdapter;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private RecyclerView Recy;
private ArrayList<String> mList=new ArrayList<>();
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
adapter = new MyAdapter(mList);
Recy.setAdapter(adapter);
initData();
adapter.setOnClickListener(new MyAdapter.ItemClick() {
@Override
public void setOnItemClick(View view, int i) {
Toast.makeText(MainActivity.this,mList.get(i),Toast.LENGTH_SHORT).show();
}
});
}
private void initData(){
for (int i = 0; i <20; i++) {
mList.add("你真醜"+i);
}
adapter.notifyDataSetChanged();
}
private void initView() {
Recy = (RecyclerView) findViewById(R.id.Recy);
GridLayoutManager layoutManager=new GridLayoutManager(this,3);
Recy.setLayoutManager(layoutManager);
}
}