Anytime項目開發記錄4

來源:互聯網
上載者:User

做事情列表,我在程式中命名為“正在做”。

這是一個Fragment,應用的首頁面,由一個MainActivity加上DoingListFragment和PersonFragment組成。PersonFragment之後的記錄再講。

本次主要是來說一下DoingListFragment的實現。

其中,DoingListFragment主要是由ExpandableListView來構成的。用來實現一個可伸縮列表。

這裡出現一個問題,我希望ExpandableListView的資料是從伺服器得到的,從而我可以動態添加一些列表內容,方便程式內容的豐富。

基於這個希望,在DoingListFragment展示的時候,要動態更新列表內容。也許大家覺得這裡並不麻煩,其實,麻煩的還在後面。

直觀一點,我給大家看:

這裡,生活、工作、休閑,是一個比較大的分類,而下面的一些睡覺、走路、開車等等,又是一些細小的分類。

當我們從AVOS上面擷取資料的時候,擷取到的只是一個列表形式的資料,也就是說,我只可以擷取到較大分類的列表,和多個子分類列表。

這裡就有多種解決方案:

  1. 同時發送擷取所有資料的請求,這樣的好處就是節省時間。同樣,這樣產生的問題就是,何時更新介面來顯示資料?所有資料都擷取完成嗎?那麼,我如何判斷所有資料都擷取完成?AVOS提供的擷取資料的方式是非同步,這樣判斷資料均傳輸完成我沒有想到什麼比較好的方法。所以,我放棄了這個方法。也許大家會有一些其他的方法,歡迎留言討論。

  2. 先擷取較大的分類,得到較大的分類後,迴圈的單獨擷取其中每一個項的子分類。這樣的問題是,時間和上一個相比要長出很多。方便的就是,我很容易知道什麼時候更新介面來顯示資料。

我選擇了後一種方式來進行資料擷取,測試結果還是非常令人滿意的,並沒有想象中的擷取時間長,而是非常快的擷取到了資料。也許是因為資料量比較小的緣故吧。

擷取到的資料,我將其封裝成了一個多個DoingListData,來方便在程式中進行對象化的處理。

 

在點擊子類列表中的某一項時,跳轉到DoingDetailActivity,來顯示正在做的人數有多少,本次獲得了什麼成就。

在跳轉到DoingDetailActivity後,從伺服器查詢同時在做此時的人,這時,查詢前10分鐘同樣點擊過這個項目的人的數量並返回,再之後,將本次的查詢記錄插入到資料庫中。這時,如果使用者退出後第二次點擊,那麼就會將自己剛剛的記錄也算在其中,所以,在第一次查詢的時候,將自身帳號排除。

寫到這裡,我突然想到了,這裡有一個問題!如果A君點擊了點擊了睡覺項,退出,再點擊睡覺項,查詢時排除了自身,看到的沒有自己的內容,但是,如果B君在A君點擊2次之後,再查詢的話,就會得到A君的兩條資料,B君將會顯示有2個人同時在做這個事情!但是B君應該要顯示的是1個人同時在做此事!我需要group by一下。。。騷後修改一下。。。

關於成就要如何做,我還在進行,在後續的記錄中,在寫出來和大家分享。

下面是Android端的類圖:

這個是AVOS資料設計的內容:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.