mvp基本操作

MainActivity代码:

public class MainActivity extends AppCompatActivity implements CallBacks<List<Goods>> {

    private EditText met;
    private GoodsPresenter presenter;
    private List<Goods> list = new ArrayList<>();
    String url = "http://www.zhaoapi.cn/product/searchProducts?keywords=手机&page=";
    private LinearAdapter adapter;
    private GridAdapter gridAdapter;
    private XRecyclerView mxrv;
    private ImageView msou;
    int page = 1;
    int sort=0;
    private Button mbt3;
    private Button mbt1;
    private Button mbt2;
    private ImageView mqie;
    boolean aaa = true;
    private GridLayoutManager layoutManager2;
    private LinearLayoutManager layoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化组件
        met = findViewById(R.id.mET);
        mxrv = findViewById(R.id.mXRV);
        //创建对象
        presenter = new GoodsPresenter(this);
        String urls = url+page+"&sort="+sort;
        presenter.goods(urls);
        //设置适配器
        adapter = new LinearAdapter(this,list);
        gridAdapter = new GridAdapter(MainActivity.this,list);
        //设置布局管理类
        layoutManager = new LinearLayoutManager(this);
        mxrv.setLayoutManager(layoutManager);
        mxrv.setAdapter(adapter);
       //点击按钮搜索
        msou = findViewById(R.id.mSou);
        msou.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                list.clear();
                String trim = met.getText().toString().trim();
                sort = 0;
                page = 1;
                url = "http://www.zhaoapi.cn/product/searchProducts?keywords="+trim+"&page=";
                String urls = url+page+"&sort="+sort;
                presenter.goods(urls);
            }
        });
        //设置刷新
        mxrv.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                page = 1;
                String urls = url+page+"&sort="+sort;
                list.clear();
                presenter.goods(urls);
            }
            @Override
            public void onLoadMore() {
                page++;
                String urls = url+page+"&sort="+sort;
                presenter.goods(urls);
            }
        });
        //综合
        mbt1 = findViewById(R.id.mBt1);
        mbt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                list.clear();
                sort=0;
                page=1;
                String urls = url+page+"&sort="+sort;
                presenter.goods(urls);
            }
        });
        //销量
        mbt2 = findViewById(R.id.mBt2);
        mbt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                list.clear();
                sort=1;
                page=1;
                String urls = url+page+"&&sort="+sort;
                presenter.goods(urls);
            }
        });
        //价格排序
        mbt3 = findViewById(R.id.mBt3);
        mbt3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                list.clear();
                sort=2;
                page=1;
                String urls = url+page+"&&sort="+sort;
                presenter.goods(urls);
            }
        });
        //切换布局
        mqie = findViewById(R.id.mQie);
        mqie.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(aaa){
                    gridAdapter = new GridAdapter(MainActivity.this,list);
                    //设置布局管理类
                    layoutManager2 = new GridLayoutManager(MainActivity.this,2);
                    mxrv.setLayoutManager(layoutManager2);
                    mxrv.setAdapter(gridAdapter);
                    aaa=false;
                }else {
                    adapter = new LinearAdapter(MainActivity.this,list);
                    //设置布局管理类
                    layoutManager = new LinearLayoutManager(MainActivity.this);
                    mxrv.setLayoutManager(layoutManager);
                    mxrv.setAdapter(adapter);
                    aaa=true;
                }
            }
        });
    }
    @Override
    public void success(List<Goods> goods) {
        list.addAll(goods);
        adapter.notifyDataSetChanged();
        mxrv.loadMoreComplete();
        mxrv.refreshComplete();
        gridAdapter.notifyDataSetChanged();
    }
    @Override
    public void fail(Result result) {

    }
}

model代码:

public class GoodsModel {
    public static Result getGoods(String url){
        String s = OkHttpUtils.get(url);
        Type type = new TypeToken<Result<List<Goods>>>() {}.getType();
        Gson gson = new Gson();
        Result result = gson.fromJson(s,type);
        return result;
    }
}

presenter代码:

public class GoodsPresenter {
    private CallBacks callBacks;
    public GoodsPresenter(CallBacks callBacks) {
        this.callBacks = callBacks;
    }
    Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            Result result = (Result) msg.obj;
            if (result.getCode()==0){
                callBacks.success(result.getData());
            }else {
                callBacks.fail(result);
            }
        }
    };
    public void goods(final String url){
        new Thread(new Runnable() {
            @Override
            public void run() {
                GoodsModel goodsModel = new GoodsModel();
                Result result = goodsModel.getGoods(url);
                Message message = handler.obtainMessage();
                message.obj = result;
                handler.sendMessage(message);
            }
        }).start();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值