android 在onClick中如何使用局部变量

Variable groupPosition is accessed from within inner class,needs to be declared final.

图片说明

 继承一下
 class MyClickListener implements View.OnClickListener {
        private int groupPosition;
        private int childPosition;
        public MyClickListener(int groupPosition,int 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(groupPosition,childPosition));

写一个内部类就行了。

 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)); 

这个简单啊,在方法参数定义前头加一个final就好了。因为这是个匿名内部类,需要传入全局变量或者是final修饰的变量