RecycleView多条目

package soexample.umeng.com.app2;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import java.util.List;

public class MyAdapter extends RecyclerView.Adapter {

    private List<MoreBean.ItemsBean> list;
    private Context context;

    public MyAdapter(List<MoreBean.ItemsBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = null;
        RecyclerView.ViewHolder viewHolder = null;
        switch (viewType){
            case 0:
                view = View.inflate(context,R.layout.itemone_layout,null);
                viewHolder = new MyViewHodler(view);
                break;
            case 1:
                view = View.inflate(context,R.layout.itemtwo_layout,null);
                viewHolder = new MyViewHodlerTwo(view);
                break;
            case 2:
                view = View.inflate(context,R.layout.itemthree_layout,null);
                viewHolder = new MyViewHodlerThree(view);
                break;
        }

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
            if (holder instanceof MyViewHodler){
                ((MyViewHodler) holder).textView.setText(list.get(position).getTitle());
                Glide.with(context).load(list.get(position).getImage()).into(((MyViewHodler) holder).imageView);
            }else if(holder instanceof MyViewHodlerTwo){
                Glide.with(context).load(list.get(position).getImages().get(0).getPic()).into(((MyViewHodlerTwo) holder).imageViewOne);
                Glide.with(context).load(list.get(position).getImages().get(1).getPic()).into(((MyViewHodlerTwo) holder).imageViewTwo);
                Glide.with(context).load(list.get(position).getImages().get(2).getPic()).into(((MyViewHodlerTwo) holder).imageViewThree);
            }else{
                ((MyViewHodlerThree)holder).textViewThree.setText(list.get(position).getTitle());
            }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    @Override
    public int getItemViewType(int position) {
        return list.get(position).getType();
    }

    class MyViewHodler extends RecyclerView.ViewHolder{
        ImageView imageView;
        TextView textView;
        public MyViewHodler(View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.item_one_image_view);
            textView = itemView.findViewById(R.id.item_one_text_tiele);
        }
    }
    class MyViewHodlerTwo extends RecyclerView.ViewHolder{
        ImageView imageViewOne,imageViewTwo,imageViewThree;
        public MyViewHodlerTwo(View itemView) {
            super(itemView);
            imageViewOne =  itemView.findViewById(R.id.item_two_image_view_one);
            imageViewTwo =  itemView.findViewById(R.id.item_two_image_view_two);
            imageViewThree =  itemView.findViewById(R.id.item_two_image_view_three);
        }
    }
    class MyViewHodlerThree extends RecyclerView.ViewHolder{
        TextView textViewThree;
        public MyViewHodlerThree(View itemView) {
            super(itemView);
            textViewThree = itemView.findViewById(R.id.item_three_text_view);
        }
    }
}
package soexample.umeng.com.app2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private String url = "https://code.aliyun.com/598254259/FristProject/raw/master/bw_list.txt";
    private RecyclerView main_recycler_view;
    private List<MoreBean.ItemsBean> list = new ArrayList<>();
    private MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        main_recycler_view = findViewById(R.id.main_Recycler_View);
        StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);

        main_recycler_view.setLayoutManager(linearLayoutManager);
        doHttp();
    }
    private void doHttp() {
        new OkHttp().get(url).setNetCallBack(new OkHttp.NetCallBack() {
            @Override
            public void onSuccess(String result) {
                Gson gson = new Gson();
                MoreBean moreBean = gson.fromJson(result, MoreBean.class);
                list = moreBean.getItems();
                MyAdapter adapter = new MyAdapter(list,MainActivity.this);
                main_recycler_view.setAdapter(adapter);
            }
        });
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42234894/article/details/83244787
今日推荐