问题描述
- android 在onClick中如何使用局部变量
- Variable groupPosition is accessed from within inner classneeds to be declared final.
解决方案
继承一下 class MyClickListener implements View.OnClickListener { private int groupPosition; private int childPosition; public MyClickListener(int groupPositionint childPosition){ this.groupPosition = groupPosition; this.childPosition = childPosition; } public void onClick(View v) { System.out.println(this.groupPosition); System.out.println(this.childPosition); } } 然后 childImage.setOnClickListener(new MyClickListener(groupPositionchildPosition));
解决方案二:
这个简单啊,在方法参数定义前头加一个final就好了。因为这是个匿名内部类,需要传入全局变量或者是final修饰的变量
解决方案三:
写一个内部类就行了。
private class ShareOnClickListener implements OnClickListener { private int position; public ShareOnClickListener(int position) { this.position = position; } @Override public void onClick(View v) { // 。。。。。。 } }
调用:
hHolder.shareLl.setOnClickListener(new ShareOnClickListener(position));
时间: 2024-09-09 15:22:45