Android開發ListView嵌套ImageView實現單選按鈕


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點擊事件中,其主要代碼如下: 

 1 lv_choosecompany.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 2             @Override
 3             public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
 4                 //把當前選中的條目加上選中效果
 5                 old_imageView = (ImageView) view.findViewById(R.id.iv_yuandian1);
 6                 old_imageView.setImageResource(R.mipmap.ic_button_checked);
 7 
 8                 new_imageView = (ImageView)view.findViewById(R.id.iv_yuandian1);
 9                 if (lastposition != -1 && lastposition != position){
10                     //如果已經單擊過條目並且上次保存的item位置和當前位置不同
11                     new_imageView.setImageResource(R.mipmap.ic_button_unchecked);//把上次選中的樣式去掉
12                 }
13                 new_imageView = old_imageView;//把當前的條目保存下來
14                 lastposition = position;//把當前的位置保存下來
15 
16                 listViewAdapter.notifyDataSetChanged();
17 
18             }
19 
20         });

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM