android中的mvp模式:在splash頁面中,判斷是否有網絡連接,有則跳到下個頁面
來自: http://blog.csdn.net/knxw0001/article/details/39672917
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;
}
}
view接口
public interface ISplashView {
void showProcessBar();
void hideProcessBar();
void showNetError();
void startNextActivity();
}
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();
}
}</pre>
7. 源碼鏈接
http://download.csdn.net/detail/knxw0001/7990065
本文由用戶 hou 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!