您的位置:首页 > 理论基础 > 计算机网络

实战MVP请求数据OKHttp封装RecyclerView上拉刷新下拉加载

2017-12-11 07:54 615 查看
//布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context="com.bwie.week2_demo.MainActivity">

    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal">

        <TextView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="搜索商品"

            android:textSize="30sp"

            android:layout_marginLeft="130dp"

            android:layout_marginTop="10dp"

            />

        <ImageView

            android:id="@+id/img1"

            android:layout_width="40dp"

            android:layout_height="40dp"

            android:src="@drawable/grid_icon"

            android:layout_marginLeft="80dp"

            android:layout_marginBottom="10dp"

            android:layout_marginTop="5dp"/>

    </LinearLayout>

    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal">

        <EditText

            android:id="@+id/et_name1"

            android:layout_width="240dp"

            android:layout_height="wrap_content"

            android:hint="请输入关键字"

            android:layout_marginLeft="25dp"

            android:layout_marginTop="10dp"/>

        <Button

            android:id="@+id/btn1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="搜索"

            android:layout_marginTop="10dp"

            android:layout_marginLeft="15dp"

            android:layout_marginBottom="10dp"/>

    </LinearLayout>

    <android.support.v7.widget.RecyclerView

        android:id="@+id/recyclerview1"

        android:layout_width="match_parent"

        android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>

</LinearLayout>

//presenter

package com.bwie.week2_demo.Presenter;

import android.content.Context;

import com.bwie.week2_demo.Bean.Bean;

import com.bwie.week2_demo.Model.MyModel;

import com.bwie.week2_demo.View.Iview;

import com.bwie.week2_demo.utils.OnUiCallback;

import com.google.gson.Gson;

import java.io.IOException;

import okhttp3.Call;

/**

 * Created by 小醜 on 2017/12/9.

 */

public class Presenter {

    Context context; Iview iView;

    MyModel myModel;

    public Presenter(Context context, Iview iView) {

        this.context=context;

        this.iView=iView;

        this.myModel=new MyModel();

    }

    public void get(){

      myModel.initData(new OnUiCallback() {

          @Override

          public void onFailed(Call call, IOException e) {

          }

          @Override

          public void onSuccess(String result)

          {

              Gson gson=new Gson();

            Bean bean=  gson.fromJson(result, Bean.class);

              iView.getData(bean);

          }

      });

    }

}

//utils包 ok封装 导进

//view包  Iview类

package com.bwie.week2_demo.View;

import com.bwie.week2_demo.Bean.Bean;

/**

 * Created by 小醜 on 2017/12/9.

 */

public interface Iview {

    public void getData(Bean bean);

}

//model包  

// Imodel类

package com.bwie.week2_demo.Model;

import okhttp3.Callback;

/**

 * Created by 小醜 on 2017/12/9.

 */

public interface IModel {

    public void initData(Callback callback);

}

//MyModel

package com.bwie.week2_demo.Model;

import com.bwie.week2_demo.utils.OkHttp3Utils;

import okhttp3.Callback;

/**

 * Created by 小醜 on 2017/12/9.

 */

public class MyModel implements IModel {

    @Override

    public void initData(Callback callback) {

        OkHttp3Utils.doGet("http://120.27.23.105/product/searchProducts?source=android&keywords=笔记本&page=1",callback);

    }

}

//bean 类 封装

//MainActivity类

package com.bwie.week2_demo;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.support.v7.widget.RecyclerView;

import android.view.View;

import android.widget.ImageView;

import com.bwie.week2_demo.Bean.Bean;

import com.bwie.week2_demo.Presenter.Presenter;

import com.bwie.week2_demo.View.Iview;

import java.util.List;

public class MainActivity extends AppCompatActivity implements Iview{

    ImageView img1;

    RecyclerView recyclerview;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        recyclerview= (RecyclerView) findViewById(R.id.recyclerview1);

        isitJump();

        Presenter presenter=new Presenter(this,this);

        presenter.get();

    }

    private void isitJump() {

        img1 = (ImageView) findViewById(R.id.img1);

        img1.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent intent = new Intent(MainActivity.this,Main2Activity.class);

                startActivity(intent);

            }

        });

    }

    @Override

    public void getData(Bean bean) {

        List<Bean.DataBean>  list=bean.getData();

      MyAdapter myAdapter=new MyAdapter(this,list);

        recyclerview.setAdapter(myAdapter);

    }

}

//MyAdapter 类

package com.bwie.week2_demo;

import android.content.Context;

import android.support.v7.widget.RecyclerView;

import android.view.View;

impo
4000
rt android.view.ViewGroup;

import android.widget.EditText;

import android.widget.ImageView;

import com.bwie.week2_demo.Bean.Bean;

import java.util.List;

/**

 * Created by 小醜 on 2017/12/9.

 */

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

    Context context; List<Bean.DataBean> list;

    public MyAdapter(Context context, List<Bean.DataBean> list) {

    this.context=context;

        this.list=list;

    }

    @Override

    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        return null;

    }

    @Override

    public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {

    }

    @Override

    public int getItemCount() {

        return list==null?0:list.size();

    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        ImageView img1;

        EditText et_name1;

        public ViewHolder(View itemView) {

            super(itemView);

            img1 = itemView.findViewById(R.id.img1);

            et_name1 = itemView.findViewById(R.id.et_name1);

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐