////////////////2016/04/21/////////////////////
//////////////by XBW///////////////////////////
///////////环境 api22 eclipse /////////////
搞了这么久终于弄好了接口,之前都是一个人在做项目,自己随心所欲的写代码,想怎么写就怎么写,到了团队呢,这接口那接口,各种类,各种枚举,各种内部类,抽象类,单例懒汉,单例饿汉的,也算学了不少东西,
我做的是把数据插入到数据库的一个线程类,继承的AsyncTask类,
按照惯例,先上效果图,
服务器已经获取到修改的数据了,今天主要不是布局,界面有点丑,主要是封装的AsyncTask类,上代码详细介绍
jar包的内容,
AsyncTask_Change.java是继承的AsyncTask类,是主要的类,
Config_mysql.java是配置类,配置的服务器端php返回json的url,
Info_Type.java是数据类型,用的枚举一一列举出来的,
JSONParser是向服务器收发json数据的类,是个工具类吧,
Progress_Dialog是一个系统的插入数据进度环显示,没有自定义布局,所有不需要xml文件,
上代码咯
AsyncTask_Change.java
package com.example.matrix.mysql; import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONObject; import com.example.matrix.LoginActivity; import com.example.matrix.mysql.Info_Type.INFOTYPE; import com.example.matrix.util.ProgressDialogs; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import android.widget.Toast; public class AsyncTask_Change extends AsyncTask<String, String, String> { // mysql JSONParser jsonParser = new JSONParser(); private static String url_up = Config_mysql.Get_URLPATH(); private static String url_s = ""; private static final String TAG_MESSAGE = "message"; Config_mysql USERYETEXIST = new Config_mysql(); Context context; ProgressDialog dialog; boolean result = false; public AsyncTask_Change(Context context) { this.context = context; } @SuppressWarnings("deprecation") public Config_mysql Mysql_Change(String ID, String INFO, INFOTYPE TYPE) { String id = ID; String info = INFO; INFOTYPE type = TYPE; List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("user_phone", id)); switch (type) { case brand: params.add(new BasicNameValuePair("brand", info)); url_s = INFOTYPE.brand.getUrl(); break; case logo: url_s = INFOTYPE.logo.getUrl(); params.add(new BasicNameValuePair("logo", info)); break; case platenum: url_s = INFOTYPE.platenum.getUrl(); params.add(new BasicNameValuePair("platenum", info)); break; case enginenum: url_s = INFOTYPE.enginenum.getUrl(); params.add(new BasicNameValuePair("enginenum", info)); break; case carlevel: url_s = INFOTYPE.carlevel.getUrl(); params.add(new BasicNameValuePair("carlevel", info)); break; case colometer: url_s = INFOTYPE.colometer.getUrl(); params.add(new BasicNameValuePair("colometer", info)); break; case enginestate: url_s = INFOTYPE.enginestate.getUrl(); params.add(new BasicNameValuePair("enginestate", info)); break; case shiftstate: url_s = INFOTYPE.shiftstate.getUrl(); params.add(new BasicNameValuePair("shiftstate", info)); break; case light: url_s = INFOTYPE.light.getUrl(); params.add(new BasicNameValuePair("light", info)); break; case oilcount: url_s = INFOTYPE.oilcount.getUrl(); params.add(new BasicNameValuePair("oilcount", info)); break; case order_time: url_s = INFOTYPE.order_time.getUrl(); params.add(new BasicNameValuePair("order_time", info)); break; case gas_station: url_s = INFOTYPE.gas_station.getUrl(); params.add(new BasicNameValuePair("gas_station", info)); break; case gas_type: url_s = INFOTYPE.gas_type.getUrl(); params.add(new BasicNameValuePair("gas_type", info)); break; case gas_num: url_s = INFOTYPE.gas_num.getUrl(); params.add(new BasicNameValuePair("gas_num", info)); break; case user_name: url_s = INFOTYPE.user_name.getUrl(); params.add(new BasicNameValuePair("user_name", info)); break; case user_age: url_s = INFOTYPE.user_age.getUrl(); params.add(new BasicNameValuePair("user_age", info)); break; case user_image_head: url_s = INFOTYPE.user_image_head.getUrl(); params.add(new BasicNameValuePair("user_image_head", info)); break; case user_sex: url_s = INFOTYPE.user_sex.getUrl(); params.add(new BasicNameValuePair("user_sex", info)); break; case user_schoolname: url_s = INFOTYPE.user_schoolname.getUrl(); params.add(new BasicNameValuePair("user_schoolname", info)); break; case user_password: url_s = INFOTYPE.user_password.getUrl(); params.add(new BasicNameValuePair("user_password", info)); break; case user_bg: url_s = INFOTYPE.user_bg.getUrl(); params.add(new BasicNameValuePair("user_bg", info)); break; case user_sign: url_s = INFOTYPE.user_sign.getUrl(); params.add(new BasicNameValuePair("user_sign", info)); break; case user_signtime: url_s = INFOTYPE.user_signtime.getUrl(); params.add(new BasicNameValuePair("user_signtime", info)); break; } try { JSONObject json = jsonParser.makeHttpRequest(url_up + url_s, "POST", params); String message = json.getString(TAG_MESSAGE); if (message.equals("NONET")) { USERYETEXIST.Set_isNetWork(false); } else { USERYETEXIST.Set_httpjsonsuccess(message.equals("YES")); } } catch (Exception e) { e.printStackTrace(); } return USERYETEXIST; } protected void onPreExecute() { super.onPreExecute(); dialog = Progress_Dialog.CreateProgressDialog(context); dialog.show(); } @Override protected String doInBackground(String... params) { // TODO 自动生成的方法存根 String ID = params[0]; String INFO = params[1]; String TYPE = params[2]; Config_mysql LOG; LOG = Mysql_Change(ID, INFO, STRING_INFOTYPE(TYPE)); String message; if (!LOG.Get_isNetWork()) { message = "1"; } else if (LOG.Get_httpjsonsuccess()) { message = "2"; } else { message = "3"; } return message; } ///////////////////////////////////////////////////////////////////////////////////// public interface MysqlListener { //回调接口 public void Success(); public void Fail(); } private MysqlListener mysqlListener=null; public void setMysqlListener(MysqlListener mysqlListener) { this.mysqlListener = mysqlListener; } ///////////////////////////////////////////////////////////////////////////////////// @SuppressLint("ShowToast") protected void onPostExecute(String message) { dialog.dismiss(); if(mysqlListener!=null){ if (message.equals("2")) { mysqlListener.Success(); } else { mysqlListener.Fail(); } } if (message.equals("1")) { Toast.makeText(context, "网络连接失败", 8000).show(); } else if (message.equals("2")) { Toast.makeText(context, "修改成功", 8000).show(); } else { Toast.makeText(context, "修改失败", 8000).show(); } } public INFOTYPE STRING_INFOTYPE(String TYPE) { INFOTYPE type = null; switch (TYPE) { case "brand": type = INFOTYPE.brand; break; case "logo": type = INFOTYPE.logo; break; case "platenum": type = INFOTYPE.platenum; break; case "enginenum": type = INFOTYPE.enginenum; break; case "carlevel": type = INFOTYPE.carlevel; break; case "colometer": type = INFOTYPE.colometer; break; case "enginestate": type = INFOTYPE.enginestate; break; case "shiftstate": type = INFOTYPE.shiftstate; break; case "light": type = INFOTYPE.light; break; case "oilcount": type = INFOTYPE.oilcount; break; case "order_time": type = INFOTYPE.order_time; break; case "gas_station": type = INFOTYPE.gas_station; break; case "gas_type": type = INFOTYPE.gas_type; break; case "gas_num": type = INFOTYPE.gas_num; break; case "user_name": type = INFOTYPE.user_name; break; case "user_image_head": type = INFOTYPE.user_image_head; break; case "user_age": type = INFOTYPE.user_age; break; case "user_schoolname": type = INFOTYPE.user_schoolname; break; case "user_sex": type = INFOTYPE.user_sex; break; case "user_password": type = INFOTYPE.user_password; break; case "user_bg": type = INFOTYPE.user_bg; break; case "user_sign": type = INFOTYPE.user_sign; break; case "user_signtime": type = INFOTYPE.user_signtime; break; } return type; } public static String INFOTYPE_STRING(INFOTYPE TYPE) { String type = null; switch (TYPE) { case brand: type = "brand"; break; case logo: type = "logo"; break; case platenum: type = "platenum"; break; case enginenum: type = "enginenum"; break; case carlevel: type = "carlevel"; break; case colometer: type = "colometer"; break; case enginestate: type = "enginestate"; break; case shiftstate: type = "shiftstate"; break; case light: type = "light"; break; case oilcount: type = "oilcount"; break; case order_time: type = "order_time"; break; case gas_station: type = "gas_station"; break; case gas_type: type = "gas_type"; break; case gas_num: type = "gas_num"; break; case user_name: type = "user_name"; break; case user_age: type = "user_age"; break; case user_schoolname: type = "user_schoolname"; break; case user_sex: type = "user_sex"; break; case user_image_head: type = "user_image_head"; break; case user_password: type = "user_password"; break; case user_bg: type = "user_bg"; break; case user_sign: type = "user_sign"; break; case user_signtime: type = "user_signtime"; break; } return type; } }
Config_mysql.java
package com.example.matrix.mysql; public class Config_mysql { public static String URLPATH="http://000.000.000.000/mysql/"; public boolean httpjsonsuccess=false; public boolean isNetWork=true;//http请求是否成功 public void Set_httpjsonsuccess(boolean httpjsonsuccess) { this.httpjsonsuccess=httpjsonsuccess; } public boolean Get_httpjsonsuccess() { return httpjsonsuccess; } public void Set_isNetWork(boolean isNetWork) { this.isNetWork=isNetWork; } public boolean Get_isNetWork() { return isNetWork; } public void Set_URLPATH(String URLPATH) { this.URLPATH=URLPATH; } public static String Get_URLPATH() { return URLPATH; } }
Info_Type.java
package com.example.matrix.mysql; public class Info_Type { public enum INFOTYPE{ //keep保养 brand {public String getUrl(){return "keep/change_brand.php";}public INFOTYPE getType(){return brand;}public String getName(){return "brand";}}, logo {public String getUrl(){return "keep/change_logo.php";}public INFOTYPE getType(){return logo;}public String getName(){return "logo";}}, platenum {public String getUrl(){return "keep/change_platenum.php";}public INFOTYPE getType(){return platenum;}public String getName(){return "platenum";}}, enginenum {public String getUrl(){return "keep/change_enginenum.php";}public INFOTYPE getType(){return enginenum;}public String getName(){return "enginenum";}}, carlevel {public String getUrl(){return "keep/change_carlevel.php";}public INFOTYPE getType(){return carlevel;}public String getName(){return "carlevel";}}, colometer {public String getUrl(){return "keep/change_colometer.php";}public INFOTYPE getType(){return colometer;}public String getName(){return "colometer";}}, enginestate {public String getUrl(){return "keep/change_enginestate.php";}public INFOTYPE getType(){return enginestate;}public String getName(){return "enginestate";}}, shiftstate {public String getUrl(){return "keep/change_shiftstate.php";}public INFOTYPE getType(){return shiftstate;}public String getName(){return "shiftstate";}}, light {public String getUrl(){return "keep/change_light.php";}public INFOTYPE getType(){return light;}public String getName(){return "light";}}, oilcount {public String getUrl(){return "keep/change_oilcount.php";}public INFOTYPE getType(){return oilcount;}public String getName(){return "oilcount";}}, //order预约 order_time {public String getUrl(){return "order/change_time.php";}public INFOTYPE getType(){return order_time;}public String getName(){return "order_time";}}, gas_station {public String getUrl(){return "order/change_gasstation.php";}public INFOTYPE getType(){return gas_station;}public String getName(){return "gas_station";}}, gas_type {public String getUrl(){return "order/change_gastype.php";}public INFOTYPE getType(){return gas_type;}public String getName(){return "gas_type";}}, gas_num {public String getUrl(){return "order/change_gasnum.php";}public INFOTYPE getType(){return gas_num;}public String getName(){return "gas_num";}}, //用户 user_name {public String getUrl(){return "user/change_nickname.php";}public INFOTYPE getType(){return user_name;}public String getName(){return "user_name";}}, user_password {public String getUrl(){return "user/change_password.php";}public INFOTYPE getType(){return user_password;}public String getName(){return "user_password";}}, user_image_head {public String getUrl(){return "user/change_head.php";}public INFOTYPE getType(){return user_image_head;}public String getName(){return "user_image_head";}}, user_age {public String getUrl(){return "user/change_age.php";}public INFOTYPE getType(){return user_age;}public String getName(){return "user_age";}}, user_sex {public String getUrl(){return "user/change_sex.php";}public INFOTYPE getType(){return user_sex;}public String getName(){return "user_sex";}}, user_schoolname {public String getUrl(){return "user/change_schoolname.php";}public INFOTYPE getType(){return user_schoolname;}public String getName(){return "user_schoolname";}}, user_sign {public String getUrl(){return "user/change_sign.php";}public INFOTYPE getType(){return user_sign;}public String getName(){return "user_sign";}}, user_signtime {public String getUrl(){return "user/change_signtime.php";}public INFOTYPE getType(){return user_signtime;}public String getName(){return "user_signtime";}}, user_bg {public String getUrl(){return "user/change_bg.php";}public INFOTYPE getType(){return user_bg;}public String getName(){return "user_bg";}}; public abstract INFOTYPE getType(); public abstract String getName(); public abstract String getUrl(); } }
JSONParser.java
package com.example.matrix.mysql; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.protocol.HTTP; import org.json.JSONException; import org.json.JSONObject; import android.util.Log; @SuppressWarnings("deprecation") public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; public JSONParser() { } @SuppressWarnings("deprecation") public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { try { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "UTF-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); json = "{\"success\":\"2\",\"message\":NONET}"; //网络连接失败返回json Log.d("json", json.toString()); } try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } return jObj; } }
Progress_Dialog.java
package com.example.matrix.mysql; import android.app.ProgressDialog; import android.content.Context; public class Progress_Dialog { @SuppressWarnings("deprecation") public static ProgressDialog CreateProgressDialog(Context context) { ProgressDialog dialog = new ProgressDialog(context); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialog.setMessage("数据加载中……"); dialog.setCancelable(false); return dialog; } }
代码已全部贴出,demo正在写,需要请留言……
时间: 2024-11-12 19:42:37