f在工作中遇到的一些問題及總結(f的第一篇博客)

寫在前面:

            這是f第一次在csdn這樣的論壇發表博客,主要是爲了記下平時工作過程中遇到的一些問題及解決解決的辦法。簡單介紹下自己吧,f目前任職於北京一家廣告傳媒公司的科技子公司,剛工作兩個半月,很菜。希望能跟大家多多交流,共同進步(大神勿噴)。


進入正題:

        拿f現在正在寫的項目來講吧,以前遇到的坑會陸續寫出來。今天就先寫這幾天遇到的小問題。

        需求重現:

        界面裏有listview,在listview中,點擊每一個adapter的小圖標(在右邊)會彈出一個對話框,對話框可以修改數量,修改完的數量要同時更新到listview中顯示。

        解決過程:

        剛遇到這個問題時候,f有點疑惑,暫時沒有頭緒- -,然後同事告訴我,需要把點擊的位置記錄下來,通過adapter來更新界面顯示。f想了想,覺得很有道理,就自己開始寫了。我的adapter繼承的是BaseAdapter,在adapter裏定義了一個成員變量index來記錄點擊的position,在重寫的getview方法中,把position賦值給index,在通過holder初始化完控件以後,賦值時判斷position,如果與index相等,則顯示記錄的數量。當然數量改完以後會調用adapter的notifyDataSetChanged方法。


        adapter的更新,可以調用notifyDataSetChanged界面就會重畫出來。重畫時候會依次執行重寫的baseAdapter裏的方法。getView的調用次數跟前面getCount的次數一致。f原來調錯時候是debug一步步走的,其實可以學學源碼,但是爲了調錯,沒有細看。這也算是Android的一個機制,是觀察者模式的實現,f最近在看<head first>對這個模式有點了解。


        扯的太多了,代碼通過圖片會貼出來一部分。但是f遇到一個問題就是每次更改一個item的數量,下面那個也會變- - 當時接口還沒調好,f是自己新建類,set數據以後顯示的。不管怎麼試,都跟着一起變,最後調了半天發現自己好坑。。。我新建的兩個類,每個add了兩次。。在內存中由於指向了同一個地址,所以修改的自然是一個,顯示時候就一起變。。啊,又坑了。。。

        好吧,以後會陸續放出來一些遇到的問題跟大家交流,下面貼部分代碼。

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章