做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的內容保存下來即可,這里就不在展示代碼,不足的地方還請同行們多多指教。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答