Android ListView ImageView實現選項按鈕執行個體_Android

來源:互聯網
上載者:User

做Android開發兩年的時間,技術稍稍有一些提升,剛好把自己實現的功能寫出來,記錄一下,如果能協助到同行的其他人,我也算是做了件好事,哈哈!!廢話不多說,先上個圖。

先上一段代碼:

1 if (lastposition == position){2           viewHolder.setImageResource(R.id.iv_yuandian1,R.mipmap.ic_button_checked);3         } else {4           viewHolder.setImageResource(R.id.iv_yuandian1,R.mipmap.ic_button_unchecked);5         }

我先在Adapter中記錄一下預設的位置,因為本人在項目中搭建了一個ListViewAdapter的抽象類別,所以每次在使用時只需要直接在Activity中new一下,然後直接在方法裡面設定常值內容或者圖片資源(如上面的代碼的寫法),以後會跟大家分享這個抽象類別,當然,這個抽象類別還是在高手的指導下完成的,大夥可以忽略我這種寫法,就按照正常的BaseAdapter上面寫就行了。扯遠了,說回主題。其實整個功能的主要部分在ListView的Item點擊事件中,其主要代碼如下:

lv_choosecompany.setOnItemClickListener(new AdapterView.OnItemClickListener() {      @Override      public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {        //把當前選中的條目加上選中效果        old_imageView = (ImageView) view.findViewById(R.id.iv_yuandian1);        old_imageView.setImageResource(R.mipmap.ic_button_checked);        new_imageView = (ImageView)view.findViewById(R.id.iv_yuandian1);        if (lastposition != -1 && lastposition != position){          //如果已經單擊過條目並且上次儲存的item位置和當前位置不同          new_imageView.setImageResource(R.mipmap.ic_button_unchecked);//把上次選中的樣式去掉        }        new_imageView = old_imageView;//把當前的條目儲存下來        lastposition = position;//把當前的位置儲存下來        listViewAdapter.notifyDataSetChanged();      }    });

整體流程差不多就是這個樣子,如果想保留選中以後的文本資訊,只需要在點擊的時候,將TextView的內容儲存下來即可,這裡就不在展示代碼,不足的地方還請同行們多多指教。

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.