超好用的Android MVP架构库,支持Presenter与UI生命周期绑定。
- 1.View层与Presenter层双向绑定
- 2.支持Dialog、Activity、Fragment等View层
1.创建UI交互接口
public interface MainContract {
interface View extends IView{
void operationView1();
}
interface Presenter extends IPresenter{
void operation1();
}
}
2.创建View层继承BaseMVPActivity/BaseMVPFragment/BaseMVPDialog并实现交互接口的View接口,重写相关方法
public class MainActivity extends BaseMVPActivity<MainContract.Presenter> implements MainContract.View {
Button btn_load;
TextView tv_data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected MainContract.Presenter createPresenter() {
return new MainPresenter(this, this);
}
@Override
protected void bindViews() {
btn_load = findView(R.id.btn_main_load);
btn_load.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPresenter.operation1();
}
});
tv_data = findView(R.id.tv_main_data);
}
@Override
public int getLayoutID() {
return R.layout.activity_main;
}
@Override
public void operationView1() {
tv_data.setText("数据");
}
}
3.创建Presenter层类,继承PresenterDelegate方法并实现UI交互接口的Presenter接口
public class MainPresenter extends PresenterDelegate<MainContract.View> implements MainContract.Presenter {
public MainPresenter(Context ctx, MainContract.View v) {
super(ctx, v);
}
@Override
public void operation1() {
mView.operationView1();
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
}
}
4.在View层类和Presenter层类编写相关操作
1.Maven
<dependency>
<groupId>com.luozm.mvplibrary</groupId>
<artifactId>mvplibrary</artifactId>
<version>1.0.7</version>
<type>pom</type>
</dependency>
2.Gradle
add this code to project build.gradle
allprojects {
repositories {
jcenter()
maven{
url 'https://dl.bintray.com/459557210/androidlibrary'
}
}
}
add this code to module build.gradle
implementation 'com.luozm.mvplibrary:mvplibrary:1.0.7'