Android中設(shè)置ListView內(nèi)容刷新問題

最近在學(xué)習(xí)Android的listView控件時遇到了一個問題,如何添加一個Item到ListView中并及時的刷新出來。在網(wǎng)上查了很多帖子,很多人在問,也很多人在解答,但是總的來說都沒找到詳細(xì)的解決方案。對于ListView與數(shù)據(jù)庫的同步,高手們建議使用ContentProvider對象。但是如果我不使用數(shù)據(jù)庫呢?也有人回答用notifyDataSetChanged()方法。這倒是一個正確的解決方案,但是對于新手來說,還是比較困惑怎么去用,這里我貼一下我的用法:

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、槐蔭網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、槐蔭網(wǎng)絡(luò)營銷、槐蔭企業(yè)策劃、槐蔭品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供槐蔭建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn

 

代碼

    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(); // 注意這里我為什么要取出這個EditText的內(nèi)容
            m.put("prod_na", tiString); // 而不這樣寫 m.put("prod_na", tv.getText());
            m.put("prod_type", tiString); // 因為tv.getText()返回的是Editable對象,真正的數(shù)據(jù)是被緩存的,
                                          // 也就是說你后續(xù)的EditText改動都會影響之前添加的Item
            coll.add(m);
            
            // 取回Adapter對象,用于調(diào)用notifyDataSetChanged方法。
            SimpleAdapter sAdapter = (SimpleAdapter)lv.getAdapter();
            sAdapter.notifyDataSetChanged();
        }
    };

 

這里涉及到了Android中的MVC模式概念,如何存儲數(shù)據(jù),控制和顯示。

你可以認(rèn)為ListView是一個View,那么mode是什么呢?顯然是SimpleAdapter對象,而Control又是什么呢?那只能是notifyDataSetChanged()了。當(dāng)數(shù)據(jù)變化時,也就是SimpleAdapter所處理的數(shù)據(jù)變化了,那么我們就需要調(diào)用 notifyDataSetChanged 去通知View作出改變。

 

其實說白了,就是 把設(shè)置數(shù)據(jù)的  代碼重新寫一遍!

分享題目:Android中設(shè)置ListView內(nèi)容刷新問題
本文地址:http://muchs.cn/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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)