首先创建Model,Presenter类
Presenter类:
public class MainActivityPresenter {
private LoginView loginView;
private MainActivityModel mainActivityModel;
public MainActivityPresenter(LoginView loginView) {
this.loginView = loginView;
this.mainActivityModel = new MainActivityModel();
}
public void login(String username, String password) {
if (TextUtils.isEmpty(username)) {
loginView.usernameNull();
return;
}
if (TextUtils.isEmpty(password)) {
loginView.passwordNull();
return;
}
mainActivityModel.login(username, password, new MainActivityModel.ModelListener() {
@Override
public void loginSuccess(String result) {
loginView.loginSuccess(result);
}
});
}
public void detach() {
loginView = null;
}
}
Model类:
public class MainActivityModel {
public void login(String username, String password, final ModelListener listener) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://qhb.2dyt.com/Bwei/login?username=muhanxi&password=111&postkey=1503d")
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String result = response.body().string();
listener.loginSuccess(result);
}
});
}
interface ModelListener {
public void loginSuccess(String result);
}
}
MainActivity:
public class MainActivity extends AppCompatActivity implements LoginView {
private EditText mainUsername;
private EditText mainPassword;
private Button mainBtn;
private MainActivityPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mainUsername = (EditText) findViewById(R.id.main_username);
mainPassword = (EditText) findViewById(R.id.main_password);
mainBtn = (Button) findViewById(R.id.main_btn);
presenter = new MainActivityPresenter(this);
mainBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username = mainUsername.getText().toString().trim();
String password = mainPassword.getText().toString().trim();
presenter.login(username, password);
}
});
}
@Override
public void usernameNull() {
Toast.makeText(this, "usernameNull", Toast.LENGTH_SHORT).show();
}
@Override
public void passwordNull() {
Toast.makeText(this, "passwordNull", Toast.LENGTH_SHORT).show();
}
@Override
public void loginSuccess(String result) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "loginSuccess", Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
presenter.detach();
}
}
定义接口:
public interface LoginView {
public void usernameNull();
public void passwordNull();
public void loginSuccess(String result);
}
最终是这样的: