2017-02-01 18 views
2

私はアンドロイドアプリを構築していますが、これは投稿には重要ではありません。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

関連する問題