添加了自定义适配单选按钮

This commit is contained in:
linglongxin24
2016-06-13 13:26:50 +08:00
parent aac33ec272
commit 476dfd512b
2 changed files with 113 additions and 133 deletions

View File

@@ -32,6 +32,7 @@ import org.xutils.ex.HttpException;
import org.xutils.http.RequestParams;
import org.xutils.x;
import java.net.SocketTimeoutException;
import java.util.List;
import java.util.Map;
@@ -48,18 +49,31 @@ public class BaseFragment extends Fragment {
return super.onCreateView(inflater, container, savedInstanceState);
}
private Callback.Cancelable cancelable;
/**
* 加载数据对话框
*/
public LoadingDialog loadingDialog;
/**
* 异步网络请求类
*
* @param requestParams
*/
protected void ajax(RequestParams requestParams) {
private void ajax(RequestParams requestParams) {
ajax(requestParams, 0);
}
/**
* 异步网络请求类
*
* @param requestParams
* @param requestCode 区分不同的网络请求
*/
protected void ajax(RequestParams requestParams, int requestCode) {
if (!CheckNetwork.isNetworkAvailable(getContext())) {
showToast("网络不可用,请检查网络连接!");
return;
@@ -67,18 +81,6 @@ public class BaseFragment extends Fragment {
if (loadingDialog == null) {
loadingDialog = new LoadingDialog(getContext());
}
if (requestParams != null) {
String uri = requestParams.getUri();
if (!uri.isEmpty()) {
String[] split = uri.split("/");
// Logger.d("split=" + Arrays.toString(split));
String method = split[split.length - 1].substring(0, split[split.length - 1].indexOf("."));
String mode = split[split.length - 2];
String sign = MD5.md5(mode + method);
requestParams.addBodyParameter("sign", sign);
}
}
Logger.d("url=" + requestParams.getUri() + "\nrequestParams=" + requestParams.getStringParams().toString());
List<KeyValue> params = requestParams.getStringParams();
for (KeyValue keyValue : params) {
@@ -86,8 +88,15 @@ public class BaseFragment extends Fragment {
throw new RuntimeException("参数异常!");
}
}
// jsonBean = JSON.parseObject(result, JsonBean.class);
cancelable = x.http().post(requestParams, new Callback.ProgressCallback<String>() {
cancelable = x.http().post(requestParams, new MyCallback(requestCode));
}
private class MyCallback implements Callback.ProgressCallback<String> {
private int requestCode = 0;
public MyCallback(int requestCode) {
this.requestCode = requestCode;
}
@Override
public void onWaiting() {
@@ -109,20 +118,19 @@ public class BaseFragment extends Fragment {
Logger.json(result);
JsonBean jsonBean = null;
try {
// jsonBean = JSON.parseObject(result, JsonBean.class);
jsonBean = jsonParse(result);
if (jsonBean.getMsg() != null && !jsonBean.getMsg().isEmpty()) {
showToast(jsonBean.getMsg());
}
if (jsonBean.getCode() == 200) {
if (jsonBean.getStatus() == 1) {
Map<String, Object> data = new ArrayMap<String, Object>();
if (null != jsonBean.getData() && jsonBean.getData().size() > 0) {
data = jsonBean.getData();
}
netOnSuccess(data);
netOnSuccess(data, requestCode);
} else {
netOnOtherStates(jsonBean.getCode(), jsonBean.getMsg());
netOnOtherStates(jsonBean.getStatus(), jsonBean.getMsg());
}
} catch (Exception e) {
if (loadingDialog != null && loadingDialog.isShowing()) {
@@ -142,7 +150,7 @@ public class BaseFragment extends Fragment {
}
@Override
public void onCancelled(CancelledException cex) {
public void onCancelled(Callback.CancelledException cex) {
Logger.d("用户取消了访问网络....");
netOnCancelled();
}
@@ -152,36 +160,7 @@ public class BaseFragment extends Fragment {
netOnFinish();
}
});
}
//
// private JsonBean jsonParse(String json) throws JSONException {
// Map<String, Object> map = JSON.parseObject(json, new TypeToken<Map<String, Object>>() {
// }.getType());
// JsonBean jsonBean = new JsonBean();
// if (map.containsKey("data")) {
// Object data = map.get("data");
// System.out.println("data.getClass().getName()=" + data.getClass().getName());
// Map<String, Object> rrData = null;
// if (data instanceof String) {
// System.out.println("data instanceof String");
// rrData = new HashMap<>();
// rrData.put("data", data.toString());
// } else if (data instanceof JSONArray) {
// System.out.println("data instanceof JSONArray");
// rrData = new HashMap<>();
// rrData.put("data", data);
// } else if (data instanceof com.alibaba.fastjson.JSONObject) {
// System.out.println("data instanceof JSONObject");
// rrData = (Map) data;
// }
// jsonBean.setData(rrData);
// }
// jsonBean.setCode(Integer.valueOf(map.get("code").toString()));
// jsonBean.setMsg(Tools.getValue(map, "msg"));
//
// return jsonBean;
// }
private JsonBean jsonParse(String json) throws JSONException {
ArrayMap<String, Object> arrayMap = JSON.parseObject(json, new TypeReference<ArrayMap<String, Object>>() {
@@ -206,16 +185,17 @@ public class BaseFragment extends Fragment {
}
jsonBean.setData(rrData);
}
jsonBean.setCode(Integer.valueOf(arrayMap.get("code").toString()));
jsonBean.setStatus(Integer.valueOf(arrayMap.get("status").toString()));
jsonBean.setMsg(Tools.getValue(arrayMap, "msg"));
return jsonBean;
}
/**
* 开始访问网络
*/
public void netOnStart() {
loadingDialog.show("正在请求网络...");
loadingDialog.show("Loading...");
}
/**
@@ -224,6 +204,13 @@ public class BaseFragment extends Fragment {
public void netOnLoading(long total, long current, boolean isUploading) {
}
/**
* 访问网络成功
*/
public void netOnSuccess(Map<String, Object> data, int requestCode) {
netOnSuccess(data);
}
/**
* 访问网络成功
*/
@@ -234,7 +221,7 @@ public class BaseFragment extends Fragment {
/**
* 访问网络成功的其他状态
*/
public void netOnOtherStates(int code, String msg) {
public void netOnOtherStates(int status, String msg) {
if (loadingDialog != null && loadingDialog.isShowing()) {
loadingDialog.dismiss();
}
@@ -259,6 +246,8 @@ public class BaseFragment extends Fragment {
String errorResult = httpEx.getResult();
Toast.makeText(x.app(), "网络错误:" + ex.getMessage(), Toast.LENGTH_LONG).show();
// ...
} else if (ex instanceof SocketTimeoutException) {
Toast.makeText(x.app(), "连接服务器超时", Toast.LENGTH_LONG).show();
} else { // 其他错误
Toast.makeText(x.app(), "连接服务器失败请稍后再试ex=" + ex.getMessage(), Toast.LENGTH_SHORT).show();
// ...
@@ -273,16 +262,6 @@ public class BaseFragment extends Fragment {
public void netOnCancelled() {
}
// /**
// * 弹出Toast便捷方法
// *
// * @param charSequence
// */
// public void showToast(CharSequence charSequence) {
// Toast.makeText(getContext(), charSequence, Toast.LENGTH_SHORT).show();
//
// }
private Toast toast;
/**
@@ -378,6 +357,7 @@ public class BaseFragment extends Fragment {
((ViewGroup) listView.getParent()).addView(emptyView);
listView.setEmptyView(emptyView);
}
@Override
public void onDestroy() {
super.onDestroy();

View File

@@ -9,16 +9,16 @@ import java.util.Map;
* json解析工具类对象
*/
public class JsonBean {
private int code;
private int status;
private String msg;
private Map<String, Object> data;
public int getCode() {
return code;
public int getStatus() {
return status;
}
public void setCode(int code) {
this.code = code;
public void setStatus(int status) {
this.status = status;
}
public String getMsg() {
@@ -40,7 +40,7 @@ public class JsonBean {
@Override
public String toString() {
return "JsonBean{" +
"code=" + code +
"status=" + status +
", msg='" + msg + '\'' +
", data=" + data +
'}';