MVP auto

activity(首先生成MVP)V层

package com.example.mvpapplication.view.act

import android.os.Bundle
import android.os.PersistableBundle
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.mvpapplication.Myadapter
import com.example.mvpapplication.R
import com.example.mvpapplication.beans.Data
import com.example.mvpapplication.beans.Mvpface
import com.example.mvpapplication.contract.MainContract
import com.example.mvpapplication.presenter.MainPresenter
import kotlinx.android.synthetic.main.activity_main.*
import mvp.ljb.kt.act.BaseMvpActivity

/**
 * @Author Kotlin MVP Plugin
 * @Date 2019/12/12
 * @Description input description
 **/
class MainActivity : BaseMvpActivity<MainContract.IPresenter>() , MainContract.IView {


    override fun registerPresenter() = MainPresenter::class.java

    override fun getLayoutId(): Int {
//        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    return R.layout.activity_main
    }

    override fun initView() {
        super.initView()

        btn_getdata.setOnClickListener {
            getPresenter().getfood("1", "20", "1")
        }
    }
    override fun filldata(data: List<Data>) {
        showToast("${data.size}")
        recy.layoutManager=LinearLayoutManager(this)
        val myadapter = Myadapter(this,data)
        recy.adapter=myadapter
    }
}

P层

package com.example.mvpapplication.presenter

import android.util.Log
import com.example.mvpapplication.beans.Data
import com.example.mvpapplication.beans.JSONBean
import com.example.mvpapplication.beans.Mvpface
import mvp.ljb.kt.presenter.BaseMvpPresenter
import com.example.mvpapplication.contract.MainContract
import com.example.mvpapplication.model.MainModel
import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers

/**
 * @Author Kotlin MVP Plugin
 * @Date 2019/12/12
 * @Description input description
 **/
class MainPresenter : BaseMvpPresenter<MainContract.IView, MainContract.IModel>(), MainContract.IPresenter{

    override fun getfood(stage_id: String, limit: String, page: String){

        val getdata = getModel().getdata(stage_id, limit, page)
        getdata.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
            .subscribe(object : Observer<JSONBean>{
                override fun onComplete() {

                }

                override fun onSubscribe(d: Disposable) {
//                    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
                }

                override fun onNext(t: JSONBean) {
//                    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
                    if (t.ret==1){
                        getMvpView().filldata(t.data)
                        Log.e("---","成功"+t.data.size)
                    }else{

                    }
                }

                override fun onError(e: Throwable) {
//                    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
                    Log.e("---", "失败")

                }
                })

    }



    override fun registerModel() = MainModel::class.java

}

M层

package  com.example.mvpapplication.model

import com.example.mvpapplication.beans.JSONBean
import com.example.mvpapplication.contract.MainContract
import com.example.mvpapplication.netService.APIService
import com.lzy.okgo.OkGo
import com.lzy.okgo.callback.StringCallback
import com.lzy.okgo.model.Response
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import mvp.ljb.kt.model.BaseModel
import net.ljb.kt.client.HttpClient

/**
 * @Author Kotlin MVP Plugin
 * @Date 2019/12/12
 * @Description input description
 **/
class MainModel : BaseModel(), MainContract.IModel {
    override fun getdata(stage_id: String, limit: String, page: String): Observable<JSONBean> {
        return HttpClient.getRetrofit().create(APIService::class.java)
            .getFood(stage_id,limit,page)

    }

    var s="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1"

}

rxjava的接口

package com.example.mvpapplication.netService

import com.example.mvpapplication.beans.JSONBean
import io.reactivex.Observable
import retrofit2.http.GET
import retrofit2.http.Query

interface APIService {
    @GET("/ios/cf/dish_list.php?")
    fun getFood(@Query("stage_id") stage_id:String,@Query("limit")limit :String,@Query("page") page:String):Observable<JSONBean>
}

创建Application初始化retrofit

package com.example.mvpapplication

import android.app.Application
import net.ljb.kt.HttpConfig

class App: Application() {
    override fun onCreate() {
        super.onCreate()
        HttpConfig.setBaseUrl("http://www.qubaobei.com")
    }
}

创建Bean类创建适配器使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值