RecycleView点击切换视图

1.MainActivity页面



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.adapter.MyAdapter;
import com.example.bean.Result;
import com.example.bean.User;
import com.example.core.BaseCall;
import com.example.presenter.MyPresenter;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity implements BaseCall{

    @BindView(R.id.imag_back)
    ImageView imagBack;
    @BindView(R.id.imag_change)
    ImageView imagChange;
    @BindView(R.id.recy_view)
    RecyclerView recyView;
    @BindView(R.id.pull_view)
    PullToRefreshScrollView pullView;
    @BindView(R.id.text_zong)
    TextView textZong;
    @BindView(R.id.text_xiao)
    TextView textXiao;
    @BindView(R.id.text_jia)
    TextView textJia;

    private List<User> list;
    private MyAdapter adapter;
    private int type = 0;
    private int page = 1;
    private int sort = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        pullView.setMode(PullToRefreshBase.Mode.BOTH);
        pullView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                page = 1;
                new MyPresenter(MainActivity.this).getData(page + "",sort+"");
                pullView.onRefreshComplete();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                page++;
                new MyPresenter(MainActivity.this).getData(page + "",sort+"");
                pullView.onRefreshComplete();
            }
        });
        new MyPresenter(this).getData(page + "",sort+"");
        imagChange.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (type == 0) {
                    type = 1;
                    imagChange.setImageResource(R.drawable.b);
                    MyAdapter adapter = new MyAdapter(list, MainActivity.this, type);
                    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this);
                    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
                    recyView.setLayoutManager(linearLayoutManager);
                    recyView.setAdapter(adapter);

                } else if (type == 1) {
                    type = 0;
                    imagChange.setImageResource(R.drawable.a);
                    GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.this, 2);
                    recyView.setLayoutManager(gridLayoutManager);
                    recyView.setAdapter(adapter);

                }
            }
        });
    }

    @Override
    public void loadSuccess(Object data) {
        list = (List<User>) data;
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyView.setLayoutManager(linearLayoutManager);
        adapter = new MyAdapter(list, MainActivity.this, 0);
        recyView.setAdapter(adapter);


    }

    @Override
    public void loadError(Result result) {

    }

    @OnClick({R.id.text_zong, R.id.text_xiao, R.id.text_jia,R.id.imag_back})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.text_zong:
                sort = 0;
                Toast.makeText(this, "1111", Toast.LENGTH_SHORT).show();
                new MyPresenter(MainActivity.this).getData(page + "",sort+"");
                break;
            case R.id.text_xiao:
                sort = 1;
                Toast.makeText(this, "222", Toast.LENGTH_SHORT).show();
                new MyPresenter(MainActivity.this).getData(page + "",sort+"");
                break;
            case R.id.text_jia:
                sort = 2;
                Toast.makeText(this, "333", Toast.LENGTH_SHORT).show();
                new MyPresenter(MainActivity.this).getData(page + "",sort+"");
                break;
            case R.id.imag_back:
                finish();
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        new MyPresenter(this).unBindBaseCall();
    }
}

2.适配器

package com.example.adapter;

import android.content.Context;
import android.content.Intent;
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 com.bumptech.glide.Glide;
import com.example.bean.User;

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

/**
 * Created by 。 on 2018/12/15.
 */

public class MyAdapter extends RecyclerView.Adapter{
    private List<User> list = new ArrayList<>();
    private Context context;
    private int type;

    public MyAdapter(List<User> list, Context context, int type) {
        this.list = list;
        this.context = context;
        this.type = type;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if(viewType==0){
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_f, parent, false);
            return new MyViewHolder(view);
        }else if(viewType == 1){
            View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
            return new TwoViewHolder(inflate);
        }
        return null;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
        int itemViewType = holder.getItemViewType();
        switch (itemViewType){
            case 0:
               MyViewHolder myViewHolder = (MyViewHolder) holder;
               myViewHolder.two_title.setText(list.get(position).getSubhead());
               myViewHolder.two_price.setText("¥"+list.get(position).getPrice());
                String images = list.get(position).getImages();
                String[] strings = images.split("!");
                Glide.with(context).load(strings[0]).into(myViewHolder.imageView2);
                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent(context,ShowActivity.class);
                        intent.putExtra("url",list.get(position).getDetailUrl());
                        context.startActivity(intent);
                        list.remove(position);
                        notifyDataSetChanged();
                    }
                });
                break;
            case 1:
                TwoViewHolder twoViewHolder = (TwoViewHolder) holder;
                twoViewHolder.textView1.setText(list.get(position).getSubhead());
                twoViewHolder.textView2.setText("¥"+list.get(position).getPrice());
                String images1 = list.get(position).getImages();
                String[] strings1 = images1.split("!");
                Glide.with(context).load(strings1[0]).into(twoViewHolder.imageView1);
                break;
        }
    }

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

    class MyViewHolder extends RecyclerView.ViewHolder{


        private final ImageView imageView2;
        private final TextView two_title;
        private final TextView two_price;

        public MyViewHolder(View itemView) {
            super(itemView);
            imageView2 = itemView.findViewById(R.id.two_imag);
            two_title = itemView.findViewById(R.id.two_title);
            two_price = itemView.findViewById(R.id.two_price);

        }
    }
    class TwoViewHolder extends RecyclerView.ViewHolder{
        private final ImageView imageView1;
        private final TextView textView1;
        private final TextView textView2;
        public TwoViewHolder(View itemView) {
            super(itemView);
            imageView1 = itemView.findViewById(R.id.one_imag);
            textView1 = itemView.findViewById(R.id.ont_title);
            textView2 = itemView.findViewById(R.id.one_price);
        }
    }

    @Override
    public int getItemViewType(int position) {
        if(type ==0){
            return 0;
        }else {
            return 1;
        }

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值