简化网络请求&页面加载的baseActivity

转载请注明来源:http://blog.csdn.net/jmheart/

baseActivity

 

package com.cainiao.nursingrelease.base;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import com.cainiao.nursingrelease.R;
import com.cainiao.nursingrelease.intertace.LoadNetDate;
import com.cainiao.nursingrelease.intertace.LoadNetingIntertace;
import com.cainiao.nursingrelease.intertace.LoadSuce;
import com.jmheart.base.BaseActivity;
import com.jmheart.net.NetworkUtil;
import com.loopj.android.http.AsyncHttpResponseHandler;

/**
 *	 基类
 * 	项目:NursingRelease
 * 		@author liujie
 *	日期:2015-11-25下午3:17:40
 */
public class NurActivity extends BaseActivity {
	
	public static LoadNetingIntertace loadintertace;
	public static LoadSuce loadSuce;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		loadintertace=	new LoadNetingIntertace() {
			@Override
			public void onloadSucces(String content) {
				// TODO Auto-generated method stub
				//成功后回调 ,如果清楚数据结构的,可以在这一步做解析
				loadSuce.onsucess(content);
			}
			
			@Override
			public void onloadNoNet() {
				// TODO Auto-generated method stub
				//无网络后回调
				setContentView(R.layout.load_nonet);
				settitle("没有网络连接");
			}
			
			@Override
			public void onloadFial() {
				// TODO Auto-generated method stub
				//加载失败后回调
				setContentView(R.layout.load_fial);
				settitle("服务器没有响应");
			}
			
			@Override
			public void onloadEmpty() {
				// TODO Auto-generated method stub
				//没有数据后回调
				setContentView(R.layout.load_empty);
				settitle("没有数据");
			}

			@Override
			public void onload() {
				// TODO Auto-generated method stub
				//加载中界面
				setContentView(R.layout.load_ing);
				settitle("加载中...");
				inint();
			}
		};
		//loadintertace.onload();
	}
	
	/**
	 * 初始化
	 */
	private void inint()
	{
		if (NetworkUtil.isOnline(this)) {
			loadSuce.pdate(new AsyncHttpResponseHandler()
			{
				@Override
				public void onSuccess(String content) {
					// TODO Auto-generated method stub
					//把数据传回去
					loadintertace.onloadSucces(content);
				}
				@Override
				public void onFailure(Throwable error) {
					// TODO Auto-generated method stub
					loadintertace.onloadFial();
				}
			});
		}
		else {
			loadintertace.onloadNoNet();
		}
	}
	/**
	 * 进入界面加载网络数据
	 * @param loadSuce
	 */
	public void oncreateView(LoadSuce loadSuce)
	{
		this.loadSuce=loadSuce;
	}

	/**
	 * 网络请求
	 */
	public void loadNetDate(final LoadNetDate lDate)
	{
		if (NetworkUtil.isOnline(this)) {
			showDialog("加载中...");
		lDate.pdate(new AsyncHttpResponseHandler(){
			@Override
			public void onSuccess(String content) {
				// TODO Auto-generated method stub
				dissDialog();
				lDate.onsucess(content);
			}
			@Override
			public void onFailure(Throwable error) {
				dissDialog();
				showToast("服务器连接超时");
			};
		});
		}
		else
		{
			showToast("无网络连接");
		}
	}
	/**
	 * 标题
	 * @param msg
	 */
	public void settitle(String msg)
	{
		((TextView)findViewById(R.id.tv_title)).setText(""+msg);
	}
	/**
	 * 回退
	 * @param view
	 */
	public void back(View view)
	{
		finish();
	}
	/**
	 * 封装log
	 * @param msg
	 */
	public void showlog(String msg)
	{
		if (NursingApplication.getInstance().isdebug) {
			
			Log.i("nuring", "打印:"+msg);
		}
		
	}
 
}

接口

package com.cainiao.nursingrelease.intertace;

import com.loopj.android.http.AsyncHttpResponseHandler;

public interface LoadNetDate {

	public void pdate(AsyncHttpResponseHandler handler);
	public void onsucess(String content);
}

package com.cainiao.nursingrelease.intertace;
/**
 *  页面加载抽象类
 * 	项目:NursingRelease
 * 		@author liujie
 *	日期:2015-11-25下午3:20:16
 */
public interface LoadNetingIntertace {

	public void onload();
	/**
	 * 加载成功
	 */
	public void onloadSucces(String content);
	/**
	 *  加载失败
	 */
	public void onloadFial();
	/**
	 * 空白页面
	 */
	public void onloadEmpty();
	/**
	 * 无网络
	 */
	public void onloadNoNet();
}
package com.cainiao.nursingrelease.intertace;

import com.loopj.android.http.AsyncHttpResponseHandler;

public interface LoadSuce {

	public void pdate(AsyncHttpResponseHandler handler);
	public void onsucess(String content);

}

页面是要方法

package com.cainiao.nursingrelease.ui.task;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.cainiao.nursingrelease.R;
import com.cainiao.nursingrelease.base.NurActivity;
import com.cainiao.nursingrelease.intertace.LoadSuce;
import com.cainiao.nursingrelease.net.TaskApi;
import com.loopj.android.http.AsyncHttpResponseHandler;

/** 
 *  任务发布
 * 	项目:NursingRelease
 * 		@author liujie 
 *	日期:2015-11-20下午3:46:52
 */
public class TaskActivity extends NurActivity {
	
	Context mContext;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		mContext=this;
		oncreateView(new LoadSuce() {
			@Override
			public void pdate(AsyncHttpResponseHandler handler) {
				// TODO Auto-generated method stub
				//发送网络请求
				TaskApi.getdate(handler);
			}
			@Override
			public void onsucess(String content) {
				// TODO Auto-generated method stub
				//接受到数据
				showlog(content);
				setContentView(R.layout.task_activity);
				settitle("任务发布"); 
				inintView();
			}
			
		});
		loadintertace.onload();//开始加载中
	}
	
	/**
	 * 初始化控件,绑定数据
	 */
	private void inintView()
	{
		((Button)findViewById(R.id.btn_see)).setOnClickListener(this);
	}
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		super.onClick(v);
		switch (v.getId()) {
		case R.id.btn_see:
			startActivity(new Intent(mContext,ReleaseTaskSeeActivity.class));
			break;
		default:
			break;
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值