2015高職院校移動網際網路應用軟體開發賽準備小結
阿新 • • 發佈:2019-02-14
1.系統設計(略)
2.程式排錯(略)
3.功能編碼(可以整理)
Ui佈局 (簡單的 拖動佈局)
網路通訊(JSON)
正常流程:根據介面去http請求,得到JSON,傳送Handler, 接收資料反映到介面。
通用的post請求
/** * 通用的post請求 * * @param url * 介面地址 * @param params * 傳引數和值的map集合 * @return json 字串 */ public static String generalPost(String url, Map<String, String> params) { HttpPost request = new HttpPost(url); // 建立HTTP POST請求 try { JSONObject jsonRequest = new JSONObject(); if (params != null) { for (String key : params.keySet()) { jsonRequest.put(key, params.get(key)); } } // map-->json-->stringentity StringEntity se = new StringEntity(jsonRequest.toString()); request.setEntity(se); HttpResponse httpResponse = new DefaultHttpClient() .execute(request); String retSrc = EntityUtils.toString(httpResponse.getEntity()); return retSrc; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; }
/** * 通用JSON解析 * * @param jsonString JSON資料 * * @param keyString 返回key * * @return */ public String backJson(String jsonString, String keyString) { String val = null; try { JSONObject jsonResponse = new JSONObject(jsonString); val = jsonResponse.getString(keyString); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return val; }
內容推送(Notification)
/** * 在狀態列顯示通知 * * 加許可權 <uses-permission android:name="android.permission.VIBRATE" /> * */ private void showNotification() { // 建立一個NotificationManager的引用 NotificationManager notificationManager = (NotificationManager) this .getSystemService(android.content.Context.NOTIFICATION_SERVICE); // 定義Notification的各種屬性 Notification notification = new Notification(R.drawable.ic_launcher, "測試系統", System.currentTimeMillis()); // FLAG_AUTO_CANCEL 該通知能被狀態列的清除按鈕給清除掉 // FLAG_NO_CLEAR 該通知不能被狀態列的清除按鈕給清除掉 // FLAG_ONGOING_EVENT 通知放置在正在執行 // FLAG_INSISTENT 是否一直進行,比如音樂一直播放,知道使用者響應 notification.flags |= Notification.FLAG_ONGOING_EVENT; // 將此通知放到通知欄的"Ongoing"即"正在執行"組中 notification.flags |= Notification.FLAG_NO_CLEAR; // 表明在點選了通知欄中的"清除通知"後,此通知不清除,經常與FLAG_ONGOING_EVENT一起使用 notification.flags |= Notification.FLAG_SHOW_LIGHTS; // DEFAULT_ALL 使用所有預設值,比如聲音,震動,閃屏等等 // DEFAULT_LIGHTS 使用預設閃光提示 // DEFAULT_SOUNDS 使用預設提示聲音 // DEFAULT_VIBRATE 使用預設手機震動,需加上<uses-permission notification.defaults = Notification.DEFAULT_LIGHTS; // 疊加效果常量 // notification.defaults=Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND; notification.ledARGB = Color.BLUE; notification.ledOnMS = 5000; // 閃光時間,毫秒 // 設定通知的事件訊息 CharSequence contentTitle = "測試系統標題"; // 通知欄標題 CharSequence contentText = "測試系統內容"; // 通知欄內容 Intent notificationIntent = new Intent(MainActivity.this, MainActivity.class); // 點選該通知後要跳轉的Activity PendingIntent contentItent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(this, contentTitle, contentText, contentItent); // 把Notification傳遞給NotificationManager notificationManager.notify(0, notification); } // 刪除通知 private void clearNotification() { // 啟動後刪除之前我們定義的通知 NotificationManager notificationManager = (NotificationManager) this .getSystemService(NOTIFICATION_SERVICE); notificationManager.cancel(0); }
資料圖表展現(折線圖)
android畫圖 常用的是第三方常用的開源類庫,例子:點選開啟連結, 非常簡單好用。但是估計比賽時,不一定會給開源jar包,所以得自己畫圖,比較複雜 例子:點選打 開連結
本地資料庫(Sqlite)
//開啟或建立test.db資料庫
SQLiteDatabase db = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null);
db.execSQL("DROP TABLE IF EXISTS person");
//建立person表
db.execSQL("CREATE TABLE person (_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)");
//實體類
Person person = new Person();
person.name = "john";
person.age = 30;
//插入資料
db.execSQL("INSERT INTO person VALUES (NULL, ?, ?)", new Object[]{person.name, person.age});
//新增、更新和刪除
// db.executeSQL(String sql);
// db.executeSQL(String sql, Object[] bindArgs);//sql語句,然後第二個引數是實際的引數集
//查詢資料
Cursor c = db.rawQuery("SELECT * FROM person WHERE age >= ?", new String[]{"33"});
while (c.moveToNext()) {
int _id = c.getInt(c.getColumnIndex("_id"));
String name = c.getString(c.getColumnIndex("name"));
int age = c.getInt(c.getColumnIndex("age"));
Log.i("db", "_id=>" + _id + ", name=>" + name + ", age=>" + age);
}
c.close();
//關閉當前資料庫
db.close();