主函数:
public class MainActivity extends AppCompatActivity { private RecyclerView list; private List<String> dateSource = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); //创造数据源 for (int i = 0; i < 30; i++) { dateSource.add(i+""); } OkHttpClient okHttpClient = new OkHttpClient(); final Request request = new Request.Builder().get().url("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1").build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { //没走的时候 } @Override public void onResponse(Call call, Response response) throws IOException { //获取响应体: ResponseBody body = response.body(); byte[] bytes = body.bytes(); String result = new String(bytes); Gson gson = new Gson(); javabean javabean = gson.fromJson(result, javabean.class); //第二步:创建RecyclerView的适配器 final MyRecylerAdapter myRecylerAdapter = new MyRecylerAdapter(MainActivity.this,javabean); runOnUiThread(new Runnable() { @Override public void run() { //更新UI线程 list.setAdapter(myRecylerAdapter); } }); } }); } private void initView() { list = (RecyclerView) findViewById(R.id.list); StaggeredGridLayoutManager gridLayoutManager = new StaggeredGridLayoutManager(2, DividerItemDecoration.VERTICAL); list.setLayoutManager(gridLayoutManager); } }
适配器(MyRecylerAdapter):
public class MyRecylerAdapter extends RecyclerView.Adapter<MyViewHolder>{ private Context context; private javabean javabean; public MyRecylerAdapter(Context context, javabean javabean) { this.context = context; this.javabean = javabean; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { //创建viewHolder需要的视图 View inflate = LayoutInflater.from(context).inflate(R.layout.item, null); //创建ViewHolder MyViewHolder myViewHolder = new MyViewHolder(inflate); return myViewHolder; } @Override public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) { List<javabean.DataBean> dataBeans = javabean.getData(); javabean.DataBean dataBean = dataBeans.get(position); String pic = dataBean.getPic(); String title = dataBean.getTitle(); Picasso.with(context).load(pic).into(holder.image); holder.tv.setText(title); } @Override public int getItemCount() { List<javabean.DataBean> dataBeans = javabean.getData(); return dataBeans.size(); } }
MyViewHolder():
class MyViewHolder extends RecyclerView.ViewHolder { public TextView tv; public ImageView image; public MyViewHolder(View itemView) { super(itemView); tv = itemView.findViewById(R.id.tv); image = itemView.findViewById(R.id.image); } }
item:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:textSize="24sp" android:gravity="center_vertical" /> </LinearLayout>
对了 还有一个javabean