首页

android MVP开发模式 示例源码

java

2020-8-19

package com.lpf.mvptest.view.ui;

import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.lpf.mvptest.R;
import com.lpf.mvptest.base.IBaseView;
import com.lpf.mvptest.model.PhoneNumInfo;
import com.lpf.mvptest.presenter.PhonePresenterImpl;
import com.lpf.mvptest.view.PhoneNumInfoView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener, PhoneNumInfoView {
    //获取归属地的请求标识,用回页面多个地方请求的时候,标识是那一个完成并回调了
    private static final int REQUESTMSG = 0;

    //电话号码的EditText
    private EditText phoneNum;
    //获取归属地的按钮
    private Button getPhoneInfo;
    //用于显示最后获取的结果
    private TextView msg;
    //Loading弹框
    private ProgressDialog progressDialog;
    //获取归属地的代理对象
    private PhonePresenterImpl phonePresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();

    }

    private void initView() {
        //初始化控件
        phoneNum = (EditText) findViewById(R.id.phonenum);
        getPhoneInfo = (Button) findViewById(R.id.getphoneinfo);
        msg = (TextView) findViewById(R.id.msg);
        getPhoneInfo.setOnClickListener(this);

        //初始化Loading
        progressDialog = new ProgressDialog(this);
        progressDialog.setMessage("Loading");

        //初始化代理对象
        phonePresenter = new PhonePresenterImpl(this, this);
    }

    @Override
    public void toast(String msg, int requestTag) {

    }

    @Override
    public void showProgress(int requestTag) {
        if (null != progressDialog && !progressDialog.isShowing()) {
            progressDialog.show();
        }
    }

    @Override
    public void hideProgress(int requestTag) {
        if (null != progressDialog && progressDialog.isShowing()) {
            progressDialog.dismiss();
        }
    }

    @Override
    public void loadDataSuccess(PhoneNumInfo phoneNumInfo, int requestTag) {
        msg.setText(phoneNumInfo.toString());
    }

    @Override
    public void loadDataError(Throwable e, int requestTag) {
        msg.setText(e.getMessage());
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.getphoneinfo:
                phonePresenter.getPhoneNumInfo(phoneNum.getText().toString(), REQUESTMSG);
                break;
        }
    }
}
资源下载此资源下载价格为2D币(VIP免费),请先
资源文件列表
MVPTest-master/.gitignore , 97
MVPTest-master/.idea/.name , 7
MVPTest-master/.idea/compiler.xml , 739
MVPTest-master/.idea/copyright/profiles_settings.xml , 74
MVPTest-master/.idea/encodings.xml , 159
MVPTest-master/.idea/gradle.xml , 608
MVPTest-master/.idea/misc.xml , 2211
MVPTest-master/.idea/modules.xml , 353
MVPTest-master/.idea/runConfigurations.xml , 564
MVPTest-master/.idea/vcs.xml , 164
MVPTest-master/README.md , 24593
MVPTest-master/app/.gitignore , 7
MVPTest-master/app/build.gradle , 1200
MVPTest-master/app/proguard-rules.pro , 653
MVPTest-master/app/src/androidTest/java/com/lpf/mvptest/ApplicationTest.java , 346
MVPTest-master/app/src/main/AndroidManifest.xml , 930
MVPTest-master/app/src/main/java/com/lpf/mvptest/base/BaseBean.java , 269
MVPTest-master/app/src/main/java/com/lpf/mvptest/base/BaseModel.java , 309
MVPTest-master/app/src/main/java/com/lpf/mvptest/base/BasePresenterImpl.java , 1236
MVPTest-master/app/src/main/java/com/lpf/mvptest/base/IBasePresenter.java , 301
MVPTest-master/app/src/main/java/com/lpf/mvptest/base/IBaseRequestCallBack.java , 664
MVPTest-master/app/src/main/java/com/lpf/mvptest/base/IBaseView.java , 831
MVPTest-master/app/src/main/java/com/lpf/mvptest/base/MyApplication.java , 550
MVPTest-master/app/src/main/java/com/lpf/mvptest/helper/RetrofitManager.java , 4541
MVPTest-master/app/src/main/java/com/lpf/mvptest/model/IPhoneModel.java , 481
MVPTest-master/app/src/main/java/com/lpf/mvptest/model/PhoneModelImpl.java , 2141
MVPTest-master/app/src/main/java/com/lpf/mvptest/model/PhoneNumInfo.java , 4648
MVPTest-master/app/src/main/java/com/lpf/mvptest/presenter/IPhonePresenter.java , 518
MVPTest-master/app/src/main/java/com/lpf/mvptest/presenter/PhonePresenterImpl.java , 1088
MVPTest-master/app/src/main/java/com/lpf/mvptest/service/PhoneNunInfoService.java , 834
MVPTest-master/app/src/main/java/com/lpf/mvptest/utils/AppContextUtil.java , 487
MVPTest-master/app/src/main/java/com/lpf/mvptest/utils/NetUtil.java , 2342
MVPTest-master/app/src/main/java/com/lpf/mvptest/view/PhoneNumInfoView.java , 223
MVPTest-master/app/src/main/java/com/lpf/mvptest/view/ui/MainActivity.java , 2722
MVPTest-master/app/src/main/res/layout/activity_main.xml , 1387
MVPTest-master/app/src/main/res/mipmap-hdpi/ic_launcher.png , 3418
MVPTest-master/app/src/main/res/mipmap-mdpi/ic_launcher.png , 2206
MVPTest-master/app/src/main/res/mipmap-xhdpi/ic_launcher.png , 4842
MVPTest-master/app/src/main/res/mipmap-xxhdpi/ic_launcher.png , 7718
MVPTest-master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png , 10486
MVPTest-master/app/src/main/res/values-w820dp/dimens.xml , 358
MVPTest-master/app/src/main/res/values/colors.xml , 208
MVPTest-master/app/src/main/res/values/dimens.xml , 211
MVPTest-master/app/src/main/res/values/strings.xml , 70
MVPTest-master/app/src/main/res/values/styles.xml , 383
MVPTest-master/app/src/test/java/com/lpf/mvptest/ExampleUnitTest.java , 308
MVPTest-master/build.gradle , 498
MVPTest-master/gradle.properties , 855
MVPTest-master/gradle/wrapper/gradle-wrapper.jar , 53637
MVPTest-master/gradle/wrapper/gradle-wrapper.properties , 230
MVPTest-master/gradlew , 4971
MVPTest-master/gradlew.bat , 2314
MVPTest-master/settings.gradle , 15
没有账号? 忘记密码?

社交账号快速登录