您好,登錄后才能下訂單哦!
最近遇到了一個問題,在用到listview時,想在listview的item點擊后顯示高亮的效果,但是在activity中寫listview的onitemclick事件中寫變色效果后,點擊可以變色,但是在listview滑動后,這個效果竟然消失了?很是糾結,為什么呢?原因沒有搞太懂,好像是在滑動的時候又觸發了adapter,所以導致效果消失。后來找到一種解決辦法,分享下:
在listview的adapter中添加如下方法:
/**
* 增加用戶點擊時,獲得位置,并改變顏色
* @param pos
*/
public void setSelectedPosition(int pos) {
selectedPos = pos;
// inform the view of this change
notifyDataSetChanged();
}
public int getSelectedPosition() {
return selectedPos;
}
然后在listview的onitemonclick事件時調用這個方法:
public class MeasureitemListener implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
measurelistadapter.setSelectedPosition(arg2);
datalDialog= new LoadDialogDao(getActivity(),"數據加載中...");
datalDialog.show();
Map<String,String> map = (Map<String,String>)arg0.getItemAtPosition(arg2);
measure_id = map.get("measuerid");
getData(measure_id);
}
};
效果就是點擊后,listview被點擊的部分會顯示高亮效果,也可以根據自己的需要設置效果。
有需要的可以從github 下載我的原碼,地址是:https://github.com/maliankun/listview/archive/master.zip
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。