您的位置:首页 > 其它

recyclerview最简单实现条目加载和点击

2017-09-27 19:06 477 查看
package com.baway.admin.recyclerview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private RecyclerView rc_view;
private List<String> list;
ListView lv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到RecyclerView控件
rc_view = (RecyclerView) findViewById(R.id.rc_view);
initRV();
}

private void initRV() {
//初始化数据的方法
initData();
//定义一个listview的管理器
LinearLayoutManager manager=new LinearLayoutManager(this);
//绑定到管理器
rc_view.setLayoutManager(manager);
//关联一个适配器
MyAdapter adapter=new MyAdapter();
//绑定适配器
rc_view.setAdapter(adapter);
//定义一个条目点击事件
adapter.setOnItemClickListener(new OnItemClickListener() {
@Override
public void OnItemClickListener(View view, int position) {
Toast.makeText(MainActivity.this, "您点击了第" + position+"个", Toast.LENGTH_SHORT).show();
//list.remove(position);
//list.remove(list.remove(position));
}
});
}

//初始化数据
private void initData() {
list = new ArrayList<>();
for (int i = 0; i < 50; i++) {
list.add("item"+i);
}
}

//创建一个RecyclerView的适配器泛型别忘了加
class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{
OnItemClickListener listener;
public void setOnItemClickListener(OnItemClickListener listener){
this.listener=listener;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=View.inflate(MainActivity.this,R.layout.item,null);
MyViewHolder holder=new MyViewHolder(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.OnItemClickListener(v, (int)v.getTag());
}
});
return holder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv.setText(list.get(position));
holder.itemView.setTag(position);
}

@Override
public int getItemCount() {
//做一个非空判断
return list==null ? 0 <
a4f8
/span>: list.size();
}

//定义一个MyViewHolder继承RecyclerView下的ViewHolder
class MyViewHolder extends RecyclerView.ViewHolder{

TextView tv;

public MyViewHolder(View itemView) {
super(itemView);
tv= itemView.findViewById(R.id.tv);
}
}
}

//条目点击时要用到
public interface OnItemClickListener{
public void OnItemClickListener(View view,int position);
}

}
效果图如下:
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: