日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 关于ListView中按钮监听的优化问题(方法二)

發布時間:2024/4/15 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 关于ListView中按钮监听的优化问题(方法二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于ListView中按鈕監聽的優化問題(方法一)地址:

http://www.cnblogs.com/steffen/p/3951901.html

?

之前的方法一,雖然能夠解決position的傳遞,但是我們一般在監聽事件中會經常用到Context和存儲數據的集合ArrayList,若每次都要將這么多的數據傳遞給Button的話,那個Button的數據量必然會增大。

因此,參考方法一我們可以將Button的監聽事件寫成Adapter的內部中,方便我們調用Adapter中的所有數據。廢話不多說,直接上代碼:

1 // ... 2 3 private ButtonClickListener btnClickListener ; 4 5 public ItemAdapter(Context c, ArrayList<Map<String, Object>> appList, int resource, String[] from, int[] to) { 6 super(c, appList, resource, from, to); 7   btnClickListener = new ButtonClickListener(); 8 } 9 10 @Override 11 public View getView(int position, View converView, ViewGroup parentView) { 12 Handler handler = null; 13 View view = convertView; 14 if(convertView == null) { 15 view = LayoutInflater.from(activity).inflate(R.layout.item_list, null); 16 handler= new Handler(); 17 handler.button = view.findViewById(R.id.item_list_btn);
18      handler.button.setOnclickListener(btnClickListener);
19 view.setTag(handler); 20 } else { 21 handler = (Handler) view.getTag(); 22 } 23 // ... 24 handler.button.setTag(position); 25   return view; 26 } 27 28 private class ButtonClickListener implements View.OnClickListener { 29 @Override 30 public void onClick(View arg0) { 31 int position = (Integer) ((Button) arg0).getTag(); 32 // ... 33 } 34 } 35 36 private class Handler { 37   Button btn; 38 }

?

轉載于:https://www.cnblogs.com/steffen/p/3952090.html

總結

以上是生活随笔為你收集整理的Android 关于ListView中按钮监听的优化问题(方法二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。