2017-02-01 74 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