2017-02-01 43 views
2

我正在构建一个Android应用程序(但这对于该帖子不重要),并且正在编写一个名为scrollUntilSelectedAvatar()的方法,其中包含一个类:将外部变量传递给内部类的最佳方式

public class AvatarManager { 

    private HorizontalScrollView avatarPageHorizontalScrollView; 

    //mehod that contains the inner class 
    public void scrollUntilSelectedAvatar(HorizontalScrollView avatarPageHorizontalScrollView){ 

     this.avatarPageHorizontalScrollView = avatarPageHorizontalScrollView; 

     avatarPageHorizontalScrollView.post(new Runnable() { 
      @Override 
      public void run() { 
       AvatarManager.this.avatarPageHorizontalScrollView.scrollTo(100, 0); 
      } 
     }); 
    } 

} 

我的问题是:什么是访问内部类new Runnable()avatarPageHorizo​​ntalScrollView(即我传递给方法作为参数)的正确方法。

我发现的方式(AvatarManager.this.avatarPageHorizontalScrollView)似乎不是最好的方法。

谢谢大家的帮助:)

+2

为什么你认为你的方式不正确? –

+0

不知道,我认为有一个更好的方式来做到这一点:) – MDP

回答

1

你做到了这一点 - 是唯一正确的。关于内部类的一些东西的语法可能看起来很奇怪。但它就是这样。

public class A { 

    private int a; 

    private abstract class B { 
     public abstract void printA(); 
    } 

    public B makeB() { 
     return new B() { 
      @Override 
      public void printA() { 
       System.out.println(A.this.a); 
      } 
     }; 
    } 
} 
+0

谢谢你的男人:) – MDP