.
//导包
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);
} }); }}