Android RecyclerView的使用

来源:互联网 发布:js文字切换效果代码 编辑:程序博客网 时间:2024/05/16 11:00

package com.itheima74.recyclerview;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import java.util.ArrayList;/** * RecyclerView * 1.增强版的listview * 2.官方推荐 * 3.使用步骤: * a.build.gradle文件中添加依赖compile 'com.android.support:recyclerview-v7:25.2.0' * b.xml布局中引入,注意完整包名+类名 * c.具体见代码 */public class MainActivity extends AppCompatActivity {    ArrayList<Fruit> mFruitList;    private RecyclerView recyclerview;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();        initAdapter();    }    /**     * 初始化数据适配器     */    private void initAdapter() {        recyclerview.setAdapter(new FruitAdapter());    }    /**     * 初始化控件     */    private void initView() {        recyclerview = (RecyclerView) findViewById(R.id.recyclerview);        // 设置为LinearLayoutManager布局方式,线性布局        // LinearLayoutManager layoutManager = new LinearLayoutManager(this);        // 两种方式,水平或垂直排布,默认垂直排布        // layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);        // recyclerview.setLayoutManager(layoutManager);        // 设置为GridLayoutManager布局方式,3列排布        GridLayoutManager gridLayoutManager = new GridLayoutManager(this,3);        recyclerview.setLayoutManager(gridLayoutManager);    }    /**     * 初始化数据,水果集合     */    private void initData() {        mFruitList = new ArrayList<>();        mFruitList.add(new Fruit("apple", R.drawable.apple_pic));        mFruitList.add(new Fruit("banana", R.drawable.banana_pic));        mFruitList.add(new Fruit("cherry", R.drawable.cherry_pic));        mFruitList.add(new Fruit("grape", R.drawable.grape_pic));        mFruitList.add(new Fruit("mango", R.drawable.mango_pic));        mFruitList.add(new Fruit("orange", R.drawable.orange_pic));        mFruitList.add(new Fruit("pear", R.drawable.pear_pic));        mFruitList.add(new Fruit("pineapple", R.drawable.pineapple_pic));        mFruitList.add(new Fruit("strawberry", R.drawable.strawberry_pic));        mFruitList.add(new Fruit("watermelon", R.drawable.watermelon_pic));    }    class FruitAdapter extends RecyclerView.Adapter<ViewHolder> {        // 返回ViewHolder对象        @Override        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            return new ViewHolder(View.inflate(getApplicationContext(), R.layout.listview_item, null));        }        // 刷新界面,为ViewHolder两个属性设置内容        @Override        public void onBindViewHolder(ViewHolder holder, int position) {            Fruit fruit = mFruitList.get(position);            holder.iv.setImageResource(fruit.imageId);            holder.tv.setText(fruit.name);        }        @Override        public int getItemCount() {            // FruitAdapter是MainActivity的内部类,可以直接使用外部类的成员变量            return mFruitList.size();        }    }    static class ViewHolder extends RecyclerView.ViewHolder {        ImageView iv;        TextView tv;        ViewHolder(View itemView) {            super(itemView);            iv = (ImageView) itemView.findViewById(R.id.iv);            tv = (TextView) itemView.findViewById(R.id.tv);        }    }}


package com.itheima74.recyclerview;/** * Created by My on 2017/3/2. */class Fruit {    String name;    int imageId;    Fruit(String name, int imageId) {        this.name = name;        this.imageId = imageId;    }}







0 0
原创粉丝点击