android中的mvp模式(二)

1. 需求,这个是《android开发必知的50个诀窍》一书中的mvp章节的需求。
在splash页面中,判断是否有网络连接,有则跳到下个页面,无则弹出一条消息通知用户,同时在检查网络是否正常的期间显示一个进度条。

2. 类目录结构
[img]http://dl2.iteye.com/upload/attachment/0104/5891/0e5a2b9c-babf-3913-be22-5476c2645797.png[/img]
3. model接口和实现

public interface INetConnect {
boolean isNetConnect( Context context);
}
public class NetConnect implements INetConnect {

@Override
public boolean isNetConnect(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context. CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null) {
return mNetworkInfo.isAvailable();
}
}
return false;
}

}

4. view接口

public interface ISplashView {
void showProcessBar();
void hideProcessBar();
void showNetError();
void startNextActivity();
}

5. presenter实现

public class SplashPresenter {
private INetConnect connect;
private ISplashView iView;

public SplashPresenter(ISplashView iView){
this. iView = iView;
connect = new NetConnect();
}

public void didFinishLoading(Context context){
iView.showProcessBar();
if( connect.isNetConnect(context)){
iView.startNextActivity();
} else{
iView.showNetError();
}
iView.hideProcessBar();
}
}

6.activity中代码

public class MainActivity extends Activity implements ISplashView{

SplashPresenter presenter;
private ProgressDialog progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);

presenter = new SplashPresenter( this);
}

@Override
protected void onResume() {
super.onResume();
presenter.didFinishLoading( this);
}

@Override
public void showProcessBar() {
if ( progressBar == null) {
progressBar = new ProgressDialog( this);
progressBar.setCancelable( true);
progressBar.setCanceledOnTouchOutside( true);
progressBar.setMessage( "更新数据中,请稍后" );
} a
progressBar.show();
}

@Override
public void hideProcessBar() {
progressBar.hide();
}

@Override
public void showNetError() {
Toast. makeText(this, "暂无网络", Toast.LENGTH_SHORT).show();
}

@Override
public void startNextActivity() {
Toast. makeText(this, "跳到下个activity", Toast.LENGTH_SHORT).show();
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值