久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

android - recyclerview刷新問題

瀏覽:174日期:2024-08-13 18:20:48

問題描述

創(chuàng)建了一個(gè)recyclerview用來設(shè)置個(gè)人信息。如下圖:android - recyclerview刷新問題

然后點(diǎn)擊之后,會(huì)提示,如下圖:android - recyclerview刷新問題

選擇完成之后,用戶選擇確定或者取消重選,如下圖:android - recyclerview刷新問題

在選擇確定后,就返回recyclerview了,那這個(gè)改如何更新?(圖片是xml文件里默認(rèn)值,應(yīng)該怎樣更新成用戶選的?)

問題解答

回答1:

已經(jīng)解決。一開始想找找不使用更換數(shù)據(jù)集數(shù)據(jù)的形式來刷新recyclerview。但是最后發(fā)現(xiàn)貌似沒有別的辦法了。所以新建了一個(gè)數(shù)據(jù)集的類(很普通的,數(shù)據(jù)內(nèi)容,set,get方法)。在調(diào)用recyclerview的activity里初始化數(shù)據(jù)。因?yàn)槲沂窃谡{(diào)用了系統(tǒng)相機(jī)后返回的活動(dòng)。所以在活動(dòng)中新建了一個(gè)方法,用來讓上方圖中確定界面的活動(dòng)調(diào)用。用來通知recyclerview的adapter這個(gè)item的數(shù)據(jù)更新了。在adapter中:

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

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

回答2:

你想的太復(fù)雜了,使用recyclerview有點(diǎn)兒殺雞用牛刀了,還要多寫很多的代碼,直接使用TextView就可以了,點(diǎn)擊確定按鈕,直接設(shè)置圖片,多簡(jiǎn)單啊。xml中:

<TextViewandroid: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' />

在點(diǎn)擊確定按鈕后,使用:setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)來設(shè)置新的頭像

回答3:

有幾種方案可以參考,我司app做這種業(yè)務(wù)的也是這么一步一步過來的

使用startActivityForResult(),圖片選擇結(jié)束后同將uri和position傳給上一個(gè)activity,然后根據(jù)該position改變數(shù)據(jù)中的uri,刷新數(shù)據(jù)

使用廣播,自定義一個(gè)可以接收uri和position的廣播,在列表頁注冊(cè),選擇完圖片后發(fā)送廣播,之后操作同上

使用事件總線,我們選用的是EventBus,列表頁注冊(cè)Event,選擇完圖片后發(fā)送對(duì)應(yīng)消息即可

我們最開始使用startActivityForResult和廣播主要為了不用引入第三方庫,同時(shí)兩個(gè)頁面互相不直接調(diào)用也減小了耦合,但隨著后期類似業(yè)務(wù)越來越多,比如詳情頁點(diǎn)擊收藏、添加評(píng)論,列表頁要刷新評(píng)論數(shù)和收藏?cái)?shù)...使用這兩種方法會(huì)越來越多的冗余代碼,所以我們引入了EventBus,既減少了代碼量,又增加了代碼可讀性,減小了代碼耦合,而且這個(gè)庫還是挺小的,也容易上手,推薦題主直接使用這個(gè)庫

相關(guān)文章:
主站蜘蛛池模板: 台南县| 牟定县| 会宁县| 左权县| 沈丘县| 河津市| 灌南县| 通榆县| 如东县| 色达县| 德保县| 松原市| 灵寿县| 烟台市| 长子县| 增城市| 扎鲁特旗| 凭祥市| 定襄县| 淅川县| 孟村| 宿迁市| 始兴县| 兴国县| 梅州市| 宣威市| 中阳县| 启东市| 湘乡市| 大竹县| 丰都县| 兴安县| 武城县| 齐河县| 广宗县| 静宁县| 汝城县| 乐东| 镇雄县| 盐边县| 昔阳县|