㈠ android 資料庫如何更新
1、設置一個DB_VERSION
java">publicstaticfinalintDB_VERSION=1;
2、當你要更新表的時候就把DB_VERSION+1,就會觸發onUpgrade,資料庫就更新了,記得採納
publicDBHelper(){
//fortest
Config=newDbManager.DaoConfig()
.setDbName(DB_NAME)
.setDbVersion(DB_VERSION)
.setDbDir(Environment.getExternalStorageDirectory())
.setDbOpenListener(newDbManager.DbOpenListener(){
@Override
publicvoidonDbOpened(DbManagerdb){
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(newDbManager.DbUpgradeListener(){
@Override
publicvoidonUpgrade(DbManagerdb,intoldVersion,intnewVersion){
updateTable(db,xx.class);
}
});
}
㈡ android listview為什麼會自動刷新
使用handler+線程動態刷新界面的一般順序是這樣的:
線程:更新數據,handler:刷新界面
啟用一個新的線程去獲取遠程伺服器的數據,然後通知handler去跟新ListView
我沒有看到你在handler裡面做了什麼更新ListView的操作,你在裡面載入數據是不正確的,載入數據應當放在Thread裡面,你的代碼存在很多問題,特別是這句:handler.post(runnable);你通過延遲時間來等待數據的載入完成,這是很不科學的。
可以參考成這樣:
Handler handler = new Handler() {
public void handleMessage (Message msg) {//此方法在ui線程運行
switch(msg.what) {
case MSG_SUCCESS:
list.setAdapter(simpleAdapter);
break;
case MSG_FAILURE:
break;
}
}
};
在Thread裡面更新數據:
Runnable runnable = new Runnable() {
@Override
public void run() {//run()在新的線程中運行
final String urlPath = "http://market.huobi.com/staticmarket/ticker_btc_json.js";
String jsonString = getJsonContent.getJsonContent(urlPath);
//解析string類型的json數據並返回類型為item的一個對象中
item item = JsonTools.getItem(jsonString);
if(item!=null){
listItem.put("high",items.getHigh());
istItem.put("low",items.getLow());
listItem.put("last",items.getLast());
listItem.put("buy",items.getBuy());
listItem.put("sell",items.getSell());
listItems.add(listItem);
}
//將item對象返回到handler當中
handler.obtainMessage(MSG_SUCCESS,item).sendToTarget();
}
};
在onCerat中SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems,
R.layout.item,
new String[] { "high", "low", "last","buy","sell" },
new int[] { R.id.high, R.id.low, R.id.last,R.id.buy,R.id.sell });
ListView list = (ListView) findViewById(R.id.listView1);
具體細節你可以在調整調整。
㈢ 如何在安卓開發中實現對listview的增刪改查與刷新
其實很簡單,主要是對listview的數據源進行增刪改查的操作之後刷新listview,調用adapter的方法notifydatesetchange。