RecyclerView的基本使用

来源:互联网 发布:web前端开发必备软件 编辑:程序博客网 时间:2024/05/19 19:34
package com.example.test.myapplication;import android.app.Activity;import android.os.Handler;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity {    private RecyclerView recyclerView;    private MainAd mainAd;    private List<Bean> list;    private Bean bean;    private SwipeRefreshLayout swipeRefreshLayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe);        recyclerView = (RecyclerView) findViewById(R.id.recycler_view_test_rv);        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                mHandler.sendEmptyMessageDelayed(1, 2000);            }        });        list = new ArrayList<Bean>();        mainAd = new MainAd(list);        recyclerView.setAdapter(mainAd);        recyclerView.setLayoutManager(new LinearLayoutManager(this));        recyclerView.addItemDecoration(new Divider());        PuBu decoration = new PuBu(16);        recyclerView.addItemDecoration(decoration);        bean = new Bean(R.mipmap.i1, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i2, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i3, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i4, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i5, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i6, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i7, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i8, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i9, "hahaha");        list.add(bean);        bean = new Bean(R.mipmap.i10, "hahaha");        list.add(bean);        mainAd.setOnItemListener(new MainAd.OnItemListener() {            @Override            public void onClick(View v, int pos, Bean city) {                Toast.makeText(MainActivity.this, pos + "", Toast.LENGTH_SHORT).show();            }        });    }    private Handler mHandler = new Handler()    {        public void handleMessage(android.os.Message msg)        {            switch (msg.what)            {                case 1:                    swipeRefreshLayout.setRefreshing(false);                    break;            }        };    };

}

//适配器

package com.example.test.myapplication;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.util.List;/** * Created by 11 on 2016/3/30. */public class MainAd extends RecyclerView.Adapter<MainAd.ViewHolder> {    private List<Bean> list;    private OnItemListener listener;    public void setOnItemListener(OnItemListener onItemListener) {        this.listener = onItemListener;    }    public MainAd(List<Bean> list) {        this.list = list;    }    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);        ViewHolder vh = new ViewHolder(view);        return vh;    }    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        holder.tvItme.setText(list.get(position).gettext());        holder.imgItme.setImageResource(list.get(position).getImgUrl());    }    @Override    public int getItemCount() {        return list.size();    }    public class ViewHolder extends RecyclerView.ViewHolder {        private ImageView imgItme;        private TextView tvItme;        public ViewHolder(View itemView) {            super(itemView);            imgItme = (ImageView) itemView.findViewById(R.id.img_Item);            tvItme = (TextView) itemView.findViewById(R.id.tv_Item);            itemView.setOnClickListener(new View.OnClickListener() {                @Override                public void nClick(View v) {                    if (listener != null) {                        listener.onClick(v,getLayoutPosition(),list.get(getLayoutPosition()));                    }                }            });        }    }    interface OnItemListener {        void onClick(View v, int pos, Bean city);    }}
//--------------------xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">    <android.support.v4.widget.SwipeRefreshLayout        android:id="@+id/swipe"        android:layout_width="match_parent"        android:layout_height="match_parent" >    <android.support.v7.widget.RecyclerView        android:id="@+id/recycler_view_test_rv"        android:scrollbars="vertical"        android:layout_width="match_parent"        android:layout_height="match_parent"        /></android.support.v4.widget.SwipeRefreshLayout></RelativeLayout>


0 0