1. 程式人生 > >Do-Now—團隊Scrum 衝刺部落格五

Do-Now—團隊Scrum 衝刺部落格五

各個成員今日完成的任務

專案燃盡圖

站立式會議照片

各個成員遇到的問題

侯澤洋

//define interface
    public interface OnRecyclerViewItemClickListener {
        void onItemClick(View view, int data);

    }
    public interface OnRecyclerItemLongListener{
        void onItemLongClick(View view,int position);
    }

    public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
        this.mOnItemClickListener = listener;
    }
    public void setOnItemLongClickListener(OnRecyclerItemLongListener listener){
        this.mOnItemLong =  listener;
    }

(2)在ViewHolder中實現介面並重寫方法

      @Override
        public void onClick(View v) {
            if (mOnItemClickListener != null) {
                //注意這裡使用getTag方法獲取資料
                mOnItemClickListener.onItemClick(v, getAdapterPosition());
            }
        }

        @Override
        public boolean onLongClick(View v) {
            if(mOnItemLong != null){
                mOnItemLong.onItemLongClick(v,getPosition());
            }
            return true;
        }

(3)在活動實現這兩個方法

adapter.setOnItemClickListener(new AlarmPresetAdapter.OnRecyclerViewItemClickListener() {
            @Override
            public void onItemClick(View view, int data) {
                T.showShort(context, "點選了");
            }
        });
        adapter.setOnItemLongClickListener(new AlarmPresetAdapter.OnRecyclerItemLongListener() {
            @Override
            public void onItemLongClick(View view, int position) {
                T.showShort(context, "長按了");
            }
        });
  • 問題2:getPosition()方法變紅,getAdapterPosition()是什麼意思,為什麼時觸發非Toast事件時會沒有響應?
  • 解決方案:參考部落格:Recyclerview.getLayoutPosition()問題

    使用了ViewHolder的getLayoutPosition方法,此方法返回的pos值與onBindViewHolder方法傳入的position值有可能不同。
    根據SDK中的解釋,在Recyclerview 進行新增、移除item等操作時,position位置可能會變化,而所有的adapter的重新整理並不總是及時的,只有這個方法返回的才是當前item經過一些變換後所處的真正位置。

getPosition()方法已過時,getAdapterPosition()方法的重新整理不夠及時,使用時可能會出錯,而使用getLayoutPosition()方法則沒有這種顧慮,最終在兩個onclick方法都使用了getLayoutPosition()方法,解決問題。

周亞傑

  • 問題:介面的屬性、控制元件完成設計 主活動程式碼卻無法呼叫編寫好的drawable下xml檔案,無法正常顯示介面,並且R檔案會報紅不能用。
  • 解決方案:將控制元件、屬性單獨寫成佈局檔案放在layout下,在主佈局檔案中用include呼叫

仇夏

問題記錄及解決過程:
為了完成好需求規格說明書,我們在碼雲上新建了一個專案,然後想要將它和自己的Android Studio連上。在這個過程中我遭遇到了不少的問題。
首先,不太記得如何連線碼雲的我先上百度找來了一個教程,挺詳細的,AndroidStudio新建專案推送到碼雲上。我跟著這個教程一步步的去實現。

然後我確實出現瞭如教程中一樣的結果。
但之後遇到的問題就不是如此,我在終端輸入命令列,但一直出現錯誤

之後,我向隊友尋求幫助。


結果出現了超時的問題,就是使用git clone重新checkout源也受到影響,長時間checkout不出來。
然後找了一個很好的解決方法。
解決Gitlab的The remote end hung up unexpectedly錯誤

唐才銘

  • 遇到的問題:實現動畫時堆記憶體溢位。
    解決:Animation實現的幀動畫需要大量的圖片素材,導致記憶體佔用過多

王志偉

尋找R檔案
關於在ViewPager的子頁面中不能跳轉的問題

明日各個成員的任務安排

  • 侯澤洋:解決分數新增問題,同時編寫每週任務頁面
  • 周亞傑:個人中心頁面再優化及其邏輯程式碼的編寫及部落格編寫
  • 王志偉:頁面跳轉,任務頁面設計
  • 仇夏:樹苗成長過程設計及資料庫內容學習、使用
  • 唐才銘:進行樹苗功能的開發,及引導頁程式碼優化上傳

各個成員今日對專案的貢獻量

  • 侯澤洋:3.5
  • 周亞傑:3
  • 王志偉:3
  • 仇夏:3
  • 唐才銘:3

    由於CET4及CET6,該部落格暫未完善。