Recyclerview的简单使用
来源:互联网 发布:d3.js 可视化介绍 编辑:程序博客网 时间:2024/05/22 08:50
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.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<String>list_data=new ArrayList<>();
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//数据源
for (int i = 0; i < 20; i++) {
list_data.add("条目:" + i);
}
recyclerView = (RecyclerView) findViewById(R.id.e_view);
//布局管理者
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
//设置适配器
Myadapter adapter=new Myadapter(this,list_data);
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(new Myadapter.OnItemClickListener() {
@Override
public void onIntem(View view, int position) {
Toast.makeText(MainActivity.this, "点击了"+position, Toast.LENGTH_SHORT).show();
}
});
adapter.setItemLongClikListener(new Myadapter.OnItemLongClikListener() {
@Override
public void onLongItem(View view, int position) {
Toast.makeText(MainActivity.this, "长按"+position, Toast.LENGTH_SHORT).show();
}
});
}
}
package com.example.administrator.recycleview_demo;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
/**
* Created by Administrator on 2017/4/13.
*/
public class Myadapter extends RecyclerView.Adapter<Myadapter.ViewHolder> {
Context context;
List<String> list_data;
private OnItemClickListener itemClickListener;
private OnItemLongClikListener ItemLongClikListener;
public interface OnItemClickListener{
void onIntem(View view,int position);
}
public interface OnItemLongClikListener{
void onLongItem(View view,int position);
}
public void setOnItemClickListener(OnItemClickListener itemClickListener){
this.itemClickListener=itemClickListener;
}
public void setItemLongClikListener(OnItemLongClikListener ItemLongClikListener){
this.ItemLongClikListener=ItemLongClikListener;
}
public Myadapter(Context context, List<String> list_data) {
this.context=context;
this.list_data=list_data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.item, null);
final ViewHolder holder=new ViewHolder(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//拿到需要回调的position
int position = holder.getLayoutPosition();
if(itemClickListener!=null){
itemClickListener.onIntem(v,position);
}
}
});
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int position = holder.getLayoutPosition();
if(ItemLongClikListener!=null){
ItemLongClikListener.onLongItem(v,position);
}
return true;
}
});
return holder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.text_title.setText(list_data.get(position));
}
@Override
public int getItemCount() {
return list_data.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private final TextView text_title;
public ViewHolder(View itemView) {
super(itemView);
text_title = (TextView) itemView.findViewById(R.id.tv_title);
}
}
}
//实现多条目展示
public class Myadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
List<String> list_j;
private final LayoutInflater layoutInflater;
//建立枚举 2个item 类型
public enum ITEM_TYPE {
ITEM1,
ITEM2
}
public Myadapter(Context context, List<String> list_j) {
this.context=context;
this.list_j=list_j;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getItemViewType(int position) {
//Enum类提供了一个ordinal()方法,返回枚举类型的序数,这里ITEM_TYPE.ITEM1.ordinal()代表0, ITEM_TYPE.ITEM2.ordinal()代表1
return position % 3 == 0 ? ITEM_TYPE.ITEM1.ordinal() : ITEM_TYPE.ITEM2.ordinal();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//加载Item View的时候根据不同TYPE加载不同的布局
if (viewType == ITEM_TYPE.ITEM1.ordinal()) {
return new Item1ViewHolder(layoutInflater.inflate(R.layout.r_layout, parent, false));
} else {
return new Item2ViewHolder(layoutInflater.inflate(R.layout.r_layout2, parent, false));
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof Item1ViewHolder) {
((Item1ViewHolder) holder).mTextView.setText(list_j.get(position));
((Item1ViewHolder) holder).mTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "这是"+position, Toast.LENGTH_SHORT).show();
}
});
} else if (holder instanceof Item2ViewHolder) {
((Item2ViewHolder) holder).mTextView.setText(list_j.get(position));
((Item2ViewHolder) holder).mTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "这是"+position, Toast.LENGTH_SHORT).show();
}
});
}
}
@Override
public int getItemCount() {
return list_j == null ? 0 : list_j.size();
}
//item1 的ViewHolder
public static class Item1ViewHolder extends RecyclerView.ViewHolder{
TextView mTextView;
public Item1ViewHolder(View itemView) {
super(itemView);
mTextView=(TextView)itemView.findViewById(R.id.text_name);
}
}
//item2 的ViewHolder
public static class Item2ViewHolder extends RecyclerView.ViewHolder{
TextView mTextView;
public Item2ViewHolder(View itemView) {
super(itemView);
mTextView=(TextView)itemView.findViewById(R.id.text_name_2);
}
}
}
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView 的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- PHP memcache扩展安装 for Windows
- 【知识总结】——URI URL URN
- Secrete Master Plan HDU
- SQL 语句总结
- Eureka Server 搭建部署
- Recyclerview的简单使用
- 缓存那些事
- 详谈内存管理技术(一)
- html5初学day2【作业】
- Excel做图像
- 二维SVM的可视化解释
- Python3.5.3下配置opencv3.2.0
- 从RPC开始(二)、序列化
- MySQL中的外键