安卓高级控件3之RecyclerView的使用

来源:互联网 发布:java开发实例1200 pdf 编辑:程序博客网 时间:2024/05/29 03:04

你可以把RecyclerView其实就类似于ListView(区别在于:它是没有横线在文字下方的)

其效果图如下:



XML代码如下:

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent">  
  6.   
  7.     <android.support.v7.widget.RecyclerView  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="match_parent"  
  10.         android:id="@+id/rv_main_list"></android.support.v7.widget.RecyclerView>  
  11.   
  12. </LinearLayout>  


Java代码如下:

[html] view plain copy
  1. public class MainActivity extends AppCompatActivity {  
  2.   
  3.     private RecyclerView rv_main_list;  
  4.     private String[] names;  
  5.   
  6.     @Override  
  7.     protected void onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9.         setContentView(R.layout.activity_main);  
  10.         rv_main_list = (RecyclerView) findViewById(R.id.rv_main_list);  
  11.         names = new String[]{"没没","又有","花花","球球","哦哦","提提"};  
  12.         //rv_main_list既可以横着也可以竖着  
  13.         rv_main_list.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));  
  14.   
  15.         rv_main_list.setAdapter(new MyAdapter());  
  16.     }  
  17.   
  18.     class MyAdapter extends RecyclerView.Adapter{  
  19.   
  20.         class MyViewHolder extends RecyclerView.ViewHolder{  
  21.   
  22.             public TextView textView;  
  23.   
  24.   
  25.             public MyViewHolder(View itemView) {  
  26.                 super(itemView);  
  27.                 textView= (TextView) itemView.findViewById(android.R.id.text1);  
  28.             }  
  29.         }  
  30.   
  31.   
  32.         //类似BaseAdapter中的getView的方法  
  33.         //ViewHolder类似BaseAdapter中的ItemTag  
  34.         @Override  
  35.         public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {  
  36.             //解析布局文件  
  37.             View vgetLayoutInflater().inflate(android.R.layout.simple_list_item_1,null);  
  38.   
  39.             return new MyViewHolder(v);  
  40.         }  
  41.   
  42.         //绑定值  
  43.         @Override  
  44.         public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {  
  45.             MyViewHolder myViewHolder= (MyViewHolder) holder;  
  46.             myViewHolder.textView.setText(names[position]);  
  47.         }  
  48.   
  49.         @Override  
  50.         public int getItemCount() {  
  51.             return names.length;  
  52.         }  
  53.     }  

原创粉丝点击