IBase
public interface IBase {
}
IMain
public interface IMain extends IBase {
void onsuccessed(String str);
}
BaseActivity
public abstract class BaseActivity<P extends PBasepresenter> extends AppCompatActivity implements IBase {
private P P;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate ( savedInstanceState );
setContentView ( setChild ( ) );
initView ( );
P = initPresenter ( );
P.attachView ( this );
initData ( );
}
public P getPreaent() {
return P;
}
abstract int setChild();
abstract P initPresenter();
protected abstract void initData();
protected abstract void initView();
}
MainActivity
public class MainActivity extends BaseActivity<PMainpresenter> implements IMain {
@Override
int setChild() {
return R.layout.activity_main;
}
@Override
PMainpresenter initPresenter() {
return new PMainpresenter ( );
}
@Override
protected void initData() {
getPresenter ( ).getData ( );
}
@Override
protected void initView() {
}
@Override
public void onsuccessed(String str) {
onsuccessed ( "rfg" );
}
}
PBasepresenter
public class PBasepresenter<T extends IBase> {
private T iMain;
public void attachView(T iMain) {
this.iMain = iMain;
}
public void detaView() {
iMain = null;
}
public T getView() {
return iMain;
}
}
PMainpresenter
public class PMainpresenter extends PBasepresenter<IMain> {
public void getData() {
getView ( ).onsuccessed ( "123" );
}
}