<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(); } }); } }