MVP登录

<EditText
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<EditText
    android:id="@+id/pwd"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
<ProgressBar
    android:id="@+id/progressbar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:visibility="gone"
    />
<Button
    android:id="@+id/bnt"
    android:text="登录"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

view包
 
 
MainActivity 类

public class MainActivity extends AppCompatActivity implements View.OnClickListener,IMainView{

    private EditText name;
    private EditText pwd;
    private Button bnt;
    private ProgressBar pg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initview();
    }

    private void initview() {
        name = (EditText) findViewById(R.id.name);
        pwd = (EditText) findViewById(R.id.pwd);
        bnt=(Button)findViewById(R.id.bnt);
        pg=(ProgressBar)findViewById(R.id.progressbar);

        bnt.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bnt:
                PresenterImpl presenter=new PresenterImpl();
                presenter.loginPresenter(new Modellmpl(),this);
                break;
        }
    }

    @Override
    public void xianshijindu() {
        pg.setVisibility(View.VISIBLE);
    }

    @Override
    public void yincangjindu() {
    pg.setVisibility(View.GONE);
    }

    @Override
    public void denglushibai() {
        Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void chenggongtiaozhuan() {
        Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();

    }


    @Override
    public String shoujihao() {
        return name.getText().toString();
    }

    @Override
    public String mima() {
        return pwd.getText().toString();
    }
extends AppCompatActivity implements View.OnClickListener,IMainView{ private EditText name; private EditText pwd; private Button bnt; private ProgressBar pg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout. activity_main); initview(); } private void initview() { name = (EditText) findViewById(R.id. name); pwd = (EditText) findViewById(R.id. pwd); bnt=(Button)findViewById(R.id. bnt); pg=(ProgressBar)findViewById(R.id. progressbar); bnt.setOnClickListener( this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id. bnt: PresenterImpl presenter= new PresenterImpl(); presenter.loginPresenter( new Modellmpl(), this); break; } } @Override public void xianshijindu() { pg.setVisibility(View. VISIBLE); } @Override public void yincangjindu() { pg.setVisibility(View. GONE); } @Override public void denglushibai() { Toast. makeText(MainActivity. this, "失败", Toast. LENGTH_SHORT).show(); } @Override public void chenggongtiaozhuan() { Toast. makeText(MainActivity. this, "成功", Toast. LENGTH_SHORT).show(); } @Override public String shoujihao() { return name.getText().toString(); } @Override public String mima() { return pwd.getText().toString(); }
 
IMainView  接口
public interface IMainView {
    void xianshijindu();
    void yincangjindu();
    void denglushibai();
    void chenggongtiaozhuan();
    String shoujihao();
    String mima();
}
model包
Urse类
private String shoujihao;
private String mima;


public Urse(String shoujihao, String mima) {
    this.shoujihao = shoujihao;
    this.mima = mima;
}

public String getshoujihao() {
    return shoujihao;
}

public void setshoujihao(String shoujihao) {
    this.shoujihao = shoujihao;
}

public String getmima() {
    return mima;
}

public void setmima(String mima) {
    this.mima = mima;
}

@Override
public String toString() {
    return "Urse{" +
            "shoujihao='" + shoujihao + '\'' +
            ", mima='" + mima + '\'' +
            '}';
}
IModel
接口
public interface IModel {

    void login(Urse urse,LoginListener loginListener);
}
 
LoginListener 接口
public interface LoginListener {


    void loginSuccess();
    void loginError();
}
 
Modellmpl 类
public class Modellmpl implements IModel {

    private Myhandler myhandler=new Myhandler();
    private LoginListener loginListener;
    @Override
    public void login(final Urse urse, final LoginListener loginListener) {
       this.loginListener=loginListener;
        new Thread(){
            @Override
            public void run() {
                try {
                    Thread.sleep(3000);
                    String name = urse.getshoujihao();
                    String pwd = urse.getmima();
                    if (name.equals("186")){
                        Message message = myhandler.obtainMessage();
                        message.what=0;
                        myhandler.sendMessage(message);

                    }else{
                        Message message = myhandler.obtainMessage();
                        message.what=1;
                        myhandler.sendMessage(message);
                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    class Myhandler extends Handler{
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case 0:
                    loginListener.loginSuccess();
                    break;
                case 1:
                    loginListener.loginError();
                    break;
            }
        }
    }
}
 
presenter 包
 
IPresenter 接口
public interface IPresenter {

    void loginPresenter(IModel iModel, IMainView iMainView);
}
PresenterImpl 类

public class PresenterImpl implements IPresenter{

    @Override
    public void loginPresenter(IModel iModel,final IMainView iMainView) {
        iMainView.xianshijindu();
        Urse urse = new Urse(iMainView.shoujihao(),iMainView.mima());
        iModel.login(urse, new LoginListener() {
            @Override
            public void loginSuccess() {
                iMainView.chenggongtiaozhuan();
                iMainView.yincangjindu();

            }

            @Override
            public void loginError() {
                iMainView.denglushibai();
                iMainView.yincangjindu();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值