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