1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android 关于ListView中按钮监听的优化问题(方法二)

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

时间:2023-06-07 04:57:16

相关推荐

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

关于ListView中按钮监听的优化问题(方法一)地址:

/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) { 6super(c, appList, resource, from, to); 7 btnClickListener = new ButtonClickListener(); 8 } 9 10 @Override11 public View getView(int position, View converView, ViewGroup parentView) {12Handler handler = null;13View view = convertView;14if(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// ...24handler.button.setTag(position);25 return view;26 }2728 private class ButtonClickListener implements View.OnClickListener {29@Override30public void onClick(View arg0) {31 int position = (Integer) ((Button) arg0).getTag();32 // ...33}34 }35 36 private class Handler {37 Button btn;38 }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。