RecyclerView的用法

来源:互联网 发布:魔豆软件 编辑:程序博客网 时间:2024/05/22 01:48

.



//导包

compile 'com.android.support:recyclerview-v7:24.1.1'compile 'com.squareup.okhttp3:okhttp:3.4.2'compile 'com.squareup.okhttp3:logging-interceptor:3.4.2'


//先布局

<android.support.v7.widget.RecyclerView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/re"    />
//子布局
<TextView    android:id="@+id/tv_context"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:maxLines="2"    android:text="内容" /><RelativeLayout    android:layout_width="wrap_content"    android:layout_height="wrap_content">    <TextView        android:id="@+id/tv_time"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:text="时间" /></RelativeLayout>

//适配器



package com.bwie.nainxi;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;import com.bwie.nainxi.bean.Bean;import java.util.List;/** * Created by shenhao on 2016/11/23. */public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {    private List<Bean> list;    private Context context;    public RecyclerViewAdapter(List<Bean> list, Context context) {        this.list = list;        this.context = context;    }    @Override    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        MyViewHolder holder = new MyViewHolder(LayoutInflater.from(                context).inflate(R.layout.item, parent,                false));        return holder;    }    @Override    public void onBindViewHolder(MyViewHolder holder, int position) {        holder.tv_context.setText(list.get(position).getContent());        holder.tv_time.setText(list.get(position).getUpdatetime());    }    @Override    public int getItemCount() {        return list.size();    }    class MyViewHolder extends RecyclerView.ViewHolder{        TextView tv_context, tv_time;        public MyViewHolder(View itemView) {            super(itemView);            tv_time= (TextView) itemView.findViewById(R.id.tv_context);            tv_context  = (TextView) itemView.findViewById(R.id.tv_time);        }    }}



//主Activity

package com.bwie.nainxi;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import com.bwie.nainxi.bean.Bean;import org.json.JSONArray;import org.json.JSONObject;import java.io.IOException;import java.util.ArrayList;import java.util.List;import okhttp3.Request;public class MainActivity extends AppCompatActivity {    private RecyclerViewAdapter adapter;    private RecyclerView re;    private List<Bean> list=new ArrayList<Bean>();    private String path="http://japi.juhe.cn/joke/content/list.from?key=%20874ed931559ba07aade103eee279bb37%20&page=3&pagesize=10&sort=asc&time=1418745237";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        re =(RecyclerView)findViewById(R.id.re);        re.setLayoutManager(new LinearLayoutManager(this));
//如果想要实现Gridview的样子  很easy     
//re.setLayoutManager(new GridLayoutManager(this,4));
        initData();        adapter =new RecyclerViewAdapter(list,MainActivity.this);    }    protected void initData()    {        OkHttp.getAsync(path, new OkHttp.DataCallBack() {            @Override            public void requestFailure(Request request, IOException e) {            }            @Override            public void requestSuccess(String result) throws Exception {                List<Bean> lists=new ArrayList<Bean>();                JSONObject object=new JSONObject(result);                JSONObject reas=object.optJSONObject("result");                JSONArray arr=reas.optJSONArray("data");                for(int i=0;i<arr.length();i++)                {                    JSONObject o=(JSONObject)arr.get(i);                    String content=o.getString("content");                    String updatetime=o.getString("updatetime");                    Bean bean=new Bean(content,updatetime);                    lists.add(bean);                }                list.addAll(lists);      
re.setAdapter(adapter);
} }); }}


0 0
原创粉丝点击