您的位置:首页 > 移动开发 > Android开发

Android的v7包中的新控件——(二)RecyclerView(超级 listview,传说会代替listview)

2015-07-04 11:34 645 查看
看了上一遍文章

我有写了一个列子



竖屏滑动



横屏滑动



MyActivity

<span style="font-size:18px;"><span style="font-size:18px;">package com.baoyz.recyclerviewdemo;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.widget.GridLayout;
import android.widget.TextView;

public class MyActivity extends Activity {

RecyclerView recyclerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
recyclerView = new RecyclerView(this);
//线性布局
//LinearLayoutManager.HORIZONTAL布局横屏(设置为横屏就是横屏滑动,设置为竖屏就是竖屏滑动)
//false是否反转
recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,true));// 设置一个布局管理器,管理线性布局
setContentView(recyclerView);
//表格布局,有GridView的效果
//		recyclerView.setLayoutMode(new GridLayoutManager(this, 3));// 设置一个布局管理器
//		setContentView(recyclerView);

// 创建一个适配器
recyclerView.setAdapter(new MyRecyclerViewAdapter());

}// onCreate

}
</span></span>
MyRecyclerViewAdapter:

<span style="font-size:18px;"><span style="font-size:18px;">package com.baoyz.recyclerviewdemo;

import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class MyRecyclerViewAdapter extends RecyclerView.Adapter {
private CellData[] cell = new CellData[] { new CellData("刘备", "30"),
new CellData("刘备", "30"), new CellData("刘备", "30"),
new CellData("刘备", "30"), new CellData("刘备", "30"),
new CellData("刘备", "30"), new CellData("刘备", "30"),
new CellData("刘备", "30"), new CellData("刘备", "30"),
new CellData("刘备", "30"), new CellData("刘备", "30"),
new CellData("关于", "20") };

// 创建一个内部类
class MyViewHolder extends RecyclerView.ViewHolder {

private TextView tv1, tv2;

// root就是条目的文件、布局
public MyViewHolder(View root) {
super(root);
tv1 = (TextView) root.findViewById(R.id.textView1);// 找到控件
tv2 = (TextView) root.findViewById(R.id.textView2);

}

public TextView getTv1() {
return tv1;
}

public TextView getTv2() {
return tv2;
}

}

// 获取子对象的数量
@Override
public int getItemCount() {
return cell.length;
}

// 绑定ViewHolder
@Override
public void onBindViewHolder(ViewHolder viewHolder, int index) {
MyViewHolder holder = (MyViewHolder) viewHolder;
CellData cd = cell[index];
holder.getTv1().setText(cd.tv1);
holder.getTv2().setText(cd.tv2);
}

// 创建ViewHolder
@Override
public ViewHolder onCreateViewHolder(ViewGroup arg0, int arg1) {
View layout = LayoutInflater.from(arg0.getContext()).inflate(
R.layout.activity_listsell, null);
// 把布局返回到MyViewHolder中
return new MyViewHolder(layout);
}

}
</span></span>
CellData

<span style="font-size:18px;"><span style="font-size:18px;">package com.baoyz.recyclerviewdemo;

public class CellData {
public String tv1="111111111";
public String tv2="222222222";
public CellData(String tv1, String tv2) {
// TODO Auto-generated constructor stub
this.tv1=tv1;
this.tv2=tv2;

}

}
</span></span>

源码下载:

http://download.csdn.net/detail/zhaihaohao1/8867901

参考视频
http://www.jikexueyuan.com/course/798.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: