搜尋

首頁  >  問答  >  主體

android - recyclerview刷新問題

建立了一個recyclerview用來設定個人資訊。如下圖:

然後點選之後,會提示,如下圖:

選擇完成之後,使用者選擇確定或取消重選,如下圖:

#在選擇確定後,就回到recyclerview了,那這個改如何更新? (圖片是xml檔案裡預設值,應該怎麼更新成使用者選的?)

仅有的幸福仅有的幸福2766 天前945

全部回覆(3)我來回復

  • 漂亮男人

    漂亮男人2017-05-24 11:40:08

    已經解決。一開始想找找不使用更換資料集資料的形式來刷新recyclerview。但是最後發現似乎沒有別的辦法了。
    所以新建了一個資料集的類別(很普通的,資料內容,set,get方法)。在呼叫recyclerview的activity裡初始化資料。
    因為我是在呼叫了系統相機後回傳的活動。所以在活動中新建了一個方法,用來讓上方圖確定介面的活動呼叫。用來通知recyclerview的adapter這個item的資料更新了。在adapter中:

     mData.get(1).setAvatarUri(photoFile);
                mData.get(1).setType(2);
                notifyItemChanged(1);
                

    嗯,跟網路上的一模一樣。 (希望有其他方法的大佬能回答一下,給我個想法)

    回覆
    0
  • 巴扎黑

    巴扎黑2017-05-24 11:40:08

    你想的太複雜了,使用recyclerview有點兒殺雞用牛刀了,還要多寫很多的代碼,直接使用TextView就可以了,點擊確定按鈕,直接設置圖片,多簡單啊。
    xml中:

    <TextView
            android:drawableRight="@drawable/avatar"
            android:drawablePadding="10dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:textSize="16sp"
            android:text="头像"
            android:background="@color/white"
            android:gravity="center_vertical"
            android:layout_width="match_parent"
            android:layout_height="50dp" />
            

    在點選確定按鈕後,使用:
    setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)來設定新的頭像

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-24 11:40:08

    有幾個方案可以參考,我司app做這種業務的也是這麼一步一步過來的

    • 使用startActivityForResult(),圖片選擇結束後同將uri和position傳給上一個activity,然後根據該position改變資料中的uri,刷新資料

    • 使用廣播,自訂一個可以接收uri和position的廣播,在列表頁註冊,選擇完圖片後發送廣播,之後操作同上

    • 使用事件匯流排,我們選用的是EventBus,清單頁註冊Event,選擇完圖片後發送對應訊息即可

    我們最開始使用startActivityForResult和廣播主要為了不用引入第三方庫,同時兩個頁面互相不直接調用也減小了耦合,但隨著後期類似業務越來越多,比如詳情頁點擊收藏、添加評論,清單頁要刷新評論數和收藏數...使用這兩種方法會越來越多的冗餘代碼,所以我們引入了EventBus,既減少了代碼量,又增加了代碼可讀性,減小了程式碼耦合,而且這個函式庫還蠻小的,也容易上手,推薦題主直接使用這個函式庫

    回覆
    0
  • 取消回覆