u010477502
变身小甜甜
采纳率40.5%
2015-05-27 08:17 阅读 3.1k

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

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

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    danielinbiti danielinbiti 2015-05-27 08:35
     继承一下
     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));
    
    点赞 2 评论 复制链接分享
  • jm9393993 ProGA 2015-05-28 00:56

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

    点赞 评论 复制链接分享
  • crazy1235 月盡天明 2015-05-28 01:13

    写一个内部类就行了。

     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)); 
    
    点赞 评论 复制链接分享

相关推荐