ListView和RecyclerView默認記住第幾項總結(jié)

ListView和RecyclerView默認記住第幾項總結(jié)

前言

項目中使用ListView或者RecyclerView要記住默認的第幾項或者是選中后背景需要改成自己需要的背景,這個時候查詢了網(wǎng)上的一些資料,說ListView是很好實現(xiàn)的梦重,因為他默認的有一個setSelection(position)的方法险毁,但是這個和自己想要的效果還是有些區(qū)別的砸西,結(jié)合網(wǎng)上的一些資料亚享,還有自己的一些實踐,來看下怎么完成的吧氯庆,有些說了RecyclerView實現(xiàn)有些麻煩纪蜒,但是我這種實現(xiàn)和ListView是一樣的衷恭。來看下吧

同步更新CSDN

http://blog.csdn.net/wuyinlei/article/details/52576521

ListView實現(xiàn)

  • 首先我是在adapter里面定義一個int變量用來記錄是第幾項被選中(還有就是默認的第幾項選中)
    //默認是第幾項
    private int mPosition = 3;

    public void setPosition(int position) {
        mPosition = position;
    }

  • 然后就在getView(int i, View view, ViewGroup viewGroup)方法中通過判斷要展示的item的位置和這個位置是否相等,如果相等就設(shè)置自己想要的背景纯续,如果不相等随珠,那就是默認的背景(自己設(shè)置)。
  if (mPosition == i) {
            holder.mReRe.setBackground(mContext.getResources().getDrawable(R.drawable.spinner_ab_focused_example));
        } else {
            holder.mReRe.setBackground(mContext.getResources().getDrawable(R.drawable.spinner_ab_disabled_example));
        }
  • 最后在Activity或者fragment里面進行如下使用
   mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                mAdapter.setPosition(i);  //把當(dāng)前點擊的位置傳遞過去
                mAdapter.notifyDataSetChanged();  //通知listview刷新UI
            }
        });

RecyclerView實現(xiàn)

這個實現(xiàn)和Listview實現(xiàn)的步驟是一樣的猬错,只不過RecyclerView的點擊事件需要自己去寫窗看。

  • 首先設(shè)置在adapter里面定義int變量記錄
 //默認第幾項
    private int mPosition = 0;

    public void setPosition(int position) {
        mPosition = position;
    }
  • 然后在onBindViewHolder(ViewHolder holder, int position)方法中通過判斷要展示的item的位置是否相等,如果相等就設(shè)置自己想要的背景倦炒,如果不相等显沈,那就是默認的背景(自己設(shè)置)
 if (mPosition == position){
            holder.mReRe.setBackground(holder.itemView.getContext().getResources().getDrawable(R.drawable.spinner_ab_focused_example));
        } else {
            holder.mReRe.setBackground(holder.itemView.getContext().getResources().getDrawable(R.drawable.spinner_ab_disabled_example));
        }
  • 設(shè)置點擊事件(adapter里面)
  private OnItemClickListener mOnItemClickListener;

    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        mOnItemClickListener = onItemClickListener;
    }

    public interface OnItemClickListener {
        void onItemClick(View view, int position, String s);
    }
  • 最后在Activity或者fragment里面進行如下使用
 mAdapter.setOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position, String s) {
                mAdapter.setPosition(position); //傳遞當(dāng)前的點擊位置
                mAdapter.notifyDataSetChanged(); //通知刷新
            }
        });

最后統(tǒng)一看下效果吧:


最后附上git地址

https://github.com/wuyinlei/ListviewOrRecyclerviewMemoryposition

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逢唤,隨后出現(xiàn)的幾起案子拉讯,更是在濱河造成了極大的恐慌,老刑警劉巖智玻,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遂唧,死亡現(xiàn)場離奇詭異芙代,居然都是意外死亡吊奢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來页滚,“玉大人召边,你說我怎么就攤上這事」郏” “怎么了隧熙?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長幻林。 經(jīng)常有香客問我贞盯,道長,這世上最難降的妖魔是什么沪饺? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任躏敢,我火速辦了婚禮,結(jié)果婚禮上整葡,老公的妹妹穿的比我還像新娘件余。我一直安慰自己,他們只是感情好遭居,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布啼器。 她就那樣靜靜地躺著,像睡著了一般俱萍。 火紅的嫁衣襯著肌膚如雪端壳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天枪蘑,我揣著相機與錄音更哄,去河邊找鬼。 笑死腥寇,一個胖子當(dāng)著我的面吹牛成翩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赦役,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼麻敌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掂摔?” 一聲冷哼從身側(cè)響起术羔,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乙漓,沒想到半個月后级历,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡叭披,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年寥殖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡嚼贡,死狀恐怖熏纯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粤策,我是刑警寧澤樟澜,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站叮盘,受9級特大地震影響秩贰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柔吼,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一萍膛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嚷堡,春花似錦蝗罗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至北苟,卻和暖如春桩匪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背友鼻。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工傻昙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彩扔。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓妆档,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虫碉。 傳聞我的和親對象是個殘疾皇子贾惦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容