最近在學(xué)習(xí)Android的listView控件時(shí)遇到了一個(gè)問題,如何添加一個(gè)Item到ListView中并及時(shí)的刷新出來。在網(wǎng)上查了很多帖子,很多人在問,也很多人在解答,但是總的來說都沒找到詳細(xì)的解決方案。對于ListView與數(shù)據(jù)庫的同步,高手們建議使用ContentProvider對象。但是如果我不使用數(shù)據(jù)庫呢?也有人回答用notifyDataSetChanged()方法。這倒是一個(gè)正確的解決方案,但是對于新手來說,還是比較困惑怎么去用,這里我貼一下我的用法:
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、槐蔭網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、槐蔭網(wǎng)絡(luò)營銷、槐蔭企業(yè)策劃、槐蔭品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供槐蔭建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:aaarwkj.com
代碼
OnClickListener listener2 = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Map<String, Object> m = new HashMap<String, Object>();
String tiString = tv.getText().toString(); // 注意這里我為什么要取出這個(gè)EditText的內(nèi)容
m.put("prod_na", tiString); // 而不這樣寫 m.put("prod_na", tv.getText());
m.put("prod_type", tiString); // 因?yàn)閠v.getText()返回的是Editable對象,真正的數(shù)據(jù)是被緩存的,
// 也就是說你后續(xù)的EditText改動(dòng)都會(huì)影響之前添加的Item
coll.add(m);
// 取回Adapter對象,用于調(diào)用notifyDataSetChanged方法。
SimpleAdapter sAdapter = (SimpleAdapter)lv.getAdapter();
sAdapter.notifyDataSetChanged();
}
};
這里涉及到了Android中的MVC模式概念,如何存儲(chǔ)數(shù)據(jù),控制和顯示。
你可以認(rèn)為ListView是一個(gè)View,那么mode是什么呢?顯然是SimpleAdapter對象,而Control又是什么呢?那只能是notifyDataSetChanged()了。當(dāng)數(shù)據(jù)變化時(shí),也就是SimpleAdapter所處理的數(shù)據(jù)變化了,那么我們就需要調(diào)用 notifyDataSetChanged 去通知View作出改變。
其實(shí)說白了,就是 把設(shè)置數(shù)據(jù)的 代碼重新寫一遍!
分享題目:Android中設(shè)置ListView內(nèi)容刷新問題
本文地址:http://aaarwkj.com/article46/gdijeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、、面包屑導(dǎo)航、建站公司、外貿(mào)建站、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)