切换

package com.example.five_ds.frag;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;

import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

import com.example.five_ds.R;
import com.example.five_ds.adapter.GrideAdapter;
import com.example.five_ds.bean.NewsBean;
import com.example.five_ds.core.DataCall;
import com.example.five_ds.model.ShowModel;
import com.example.five_ds.presenter.ShowPresenter;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

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

public class Fragment01 extends Fragment implements View.OnClickListener, DataCall {

  private RecyclerView rlv;
    int page = 0;
    ShowPresenter presenter = new ShowPresenter(this) {
        @Override
        public NewsBean useModel(int... sgrs) {
            return ShowModel.getData(sgrs[0]);
        }
    };
    private List<NewsBean.DataBean> list = new ArrayList<>();

    private SharedPreferences com;
    private GridLayoutManager gridLayoutManager;
    private GrideAdapter adapter1;
    private XRecyclerView xrlv;
    private int type = 1;
    private GrideAdapter adapter;

    @Nullable

    //控件    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.fragment_01, container, false);
        xrlv = view.findViewById(R.id.xrlv);
        Button qiehuan = view.findViewById(R.id.qiehuan);


        presenter.request(page);

//垂直效果
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
        xrlv.setLayoutManager(linearLayoutManager);

        //切换点击
        qiehuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (type == 1) {
                    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
                    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
                    xrlv.setLayoutManager(linearLayoutManager);
                    adapter.notifyDataSetChanged();
                    type = 2;
                } else {
                    GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2);
                    xrlv.setLayoutManager(gridLayoutManager);
                    adapter.notifyDataSetChanged();
                    type = 1;
                }


            }

        });
        return view;


    }

//    private SharedPreferences getSharedPreferences(String isTrue, int modePrivate) {
//        return null;
//    }


    @Override
    public void onClick(View v) {

    }

    @Override
    public void loadSuccess(NewsBean data) {
        Integer code = Integer.valueOf(data.getCode());
        if (code == 0) {
            List<NewsBean.DataBean> list1 = data.getData();
            //设置适配器
            adapter = new GrideAdapter(getActivity(), list1);
            xrlv.setAdapter(adapter);
            Toast.makeText(getActivity(), data.getMsg(), Toast.LENGTH_SHORT).show();
        }
    }

}
接口

public interface DataCall {
    void loadSuccess(NewsBean data);
}

Model层

public class ShowModel {
    public static NewsBean getData(int page) {
        String data = HttpUtils.get("http://www.zhaoapi.cn/product/searchProducts?keywords=手机" + "&page=" + page);
        Gson gson = new Gson();
        NewsBean user = gson.fromJson(data, NewsBean.class);
        return user;

    }
}

工具类

public class HttpUtils {

    public static String get(String urlString) {

        OkHttpClient okHttpClient = new OkHttpClient();

        Request request = new Request.Builder().url(urlString).get().build();

        try {
            Response response = okHttpClient.newCall(request).execute();

            return response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "";
    }
}

Linear适配器
package com.example.five_ds.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
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.five_ds.R;
import com.example.five_ds.bean.NewsBean;

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

public class LinearAdapter extends RecyclerView.Adapter<LinearAdapter.VH> {
    private Context context;
    private List<NewsBean.DataBean> list;
    private TextView textView;
    private ImageView imageView;


    public LinearAdapter(List<NewsBean.DataBean> list, Context context) {
        this.context = context;
        this.list = list;
    }

    public LinearAdapter() {
        this.list = new ArrayList<>();

    }

    public void addItem(NewsBean.DataBean user) {
        if (user != null) {
            list.add(user);
        }

    }

    @NonNull
    @Override
    public LinearAdapter.VH onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.frag_item11, null);
        return new VH(view);
    }

    @Override
    public void onBindViewHolder(@NonNull LinearAdapter.VH vh, int i) {
        NewsBean.DataBean bean = list.get(i);
        textView.setText(bean.getTitle());

        String images = list.get(i).getImages();//得到图片集
        String[] split = images.split("\\|");//得到一个图片
        if (split.length > 0) {
            //将https成http  进行联网显示
            String replace = split[0].replace("https", "http");
            Glide.with(context).load(replace).into((ImageView) vh.imageView);//设置图片
        }


    }


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

    public static class VH extends RecyclerView.ViewHolder {
        private final ImageView imageView;
        private final TextView textView;


        public VH(@NonNull View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.image2);
            textView = itemView.findViewById(R.id.textView02);
        }
    }
}

P层

public class ShowPresenter {
    private DataCall dataCall;

    public ShowPresenter(DataCall dataCall) {
        this.dataCall = dataCall;

    }

    public void unBind() {
        dataCall = null;
    }

    private Handler mhandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            dataCall.loadSuccess((NewsBean) msg.obj);
        }
    };


    public void request(final int page) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                NewsBean user = useModel(page);
                Message message = mhandler.obtainMessage();
                message.obj = user;
                mhandler.sendMessage(message);
            }
        }).start();

    }

    public NewsBean useModel(int... page) {
        return null;
    }


}

猜你喜欢

转载自blog.csdn.net/qq_42805722/article/details/85558257