android中的mvp模式(二)

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

2. 类目录结构



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( "更新数据中,请稍后" );
           }
            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();
     }

}


7. 源码链接

http://download.csdn.net/detail/knxw0001/7990065


  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值