RecyClerView 替换ListView更加好使用,如果不给数据自定义的adapter则无显示,在自定义adapter的xml时候记得View inflate = layoutInflater.inflate(R.layout.xxx, parent, false); 注意要依附于parent ,如果当前只显示一条数据,需要把parent改成null就可以全部显示了。View inflate = layoutInflater.inflate(R.layout.xxx, null, false);
package com.example.administrator.myrecyclerviewdemo;
import java.util.List;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
/**
* 显示区域价格列表
*
* @author huangguoze 2017年3月8日下午4:51:55
*
* @
*/
public class RegionalPriceAdapter extends RecyclerView.Adapter<RegionalPriceAdapter.ViewHolder> {
private Context context;
private List<GetRegionalPriceUtil> data;
public RegionalPriceAdapter(Context context, List data) {
// TODO Auto-generated constructor stub
this.context = context;
this.data = data;
}
@Override
public int getItemCount() {
// TODO Auto-generated method stub
return data.size();
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int postion) {
// TODO Auto-generated method stub
//数据邦定
viewHolder.tv_adress.setText(data.get(postion).getTitle());
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int arg1) {
//邦定xml
return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.regional_price_item,viewGroup, false));
}
class ViewHolder extends RecyclerView.ViewHolder {
private TextView tv_adress;
public ViewHolder(View itemView) {
super(itemView);
tv_adress = (TextView) itemView.findViewById(R.id.tv_adress);
}
}
}
activity
package com.example.administrator.myrecyclerviewdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private RecyclerView rcv_recyClerView;
private RegionalPriceAdapter adapter;
private TextView tv;
private List<GetRegionalPriceUtil> regionalList = new ArrayList<GetRegionalPriceUtil>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rcv_recyClerView= (RecyclerView) findViewById(R.id.rcv_recyClerView);
// rcv_recyClerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
//设置布局管理器 new LinearLayoutManager后的第一个参数是上下文,第二个参数是布局方向,第三个参数是是否反转
// rv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
//设置布局管理器 表格布局 第一个是上下文,第二个是4列,第三个是布局方向,第四个是否反转
// rcv_recyClerView.setLayoutManager(new GridLayoutManager(this, 4, LinearLayoutManager.HORIZONTAL, false));
rcv_recyClerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
for (int i = 0; i < 10; i++) {
GetRegionalPriceUtil regional = new GetRegionalPriceUtil();
regional.setTitle("区域价格" + i);
regionalList.add(regional);
}
adapter=new RegionalPriceAdapter(MainActivity.this,regionalList);
rcv_recyClerView.setAdapter(adapter);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:showDividers="middle"
android:divider="@drawable/table_divider_bg">
<TextView
android:id="@+id/tv_adress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:text="广西南宁青秀区" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:text="2.2元/斤"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
package com.example.administrator.myrecyclerviewdemo;
public class GetRegionalPriceUtil {
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rcv_recyClerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/textView" />
</LinearLayout>
demo下载地址是:http://download.csdn.net/download/u013519290/9775400