2017-12-24 30 views
0

私はこのsimple tutorialに従うことによってアンドロイドリサイクルビューを改善するために取り組んでいます。私は、Javaの問題が見つかりました:私は以下のような非静的なビューホルダーinnerclass内部インターフェイスを宣言した場合.. `静的でない内部クラスの内部でインターフェイスを宣言する方法

public class DumbViewHolder extends RecyclerView.ViewHolder { 
     ... 
     ExcellentAdventureListener listener; 

     public interface ExcellentAdventureListener{ 
      void onMapClicked(ExcellentAdventure item); 
      void onTitleClicked(ExcellentAdventure item); 
     } 
     ... 

    }` 

Javaは私に次のエラーを与える:内部クラスはstatic宣言を持つことができません。 なぜですか?どうすれば修正できますか?

+0

コードでは、「定型宣言」は表示されません。 – CoXier

+0

これを参照してくださいhttps://stackoverflow.com/questions/31956340/recyclerview-inner-classes-cannot-have-static-declaration – Gaurav

+0

「非静的インナー」は同調性です。インターフェイスを1レベルだけ定義するか、実際にあなたの引用で起こっている必要がある外部レベルで*クラス*を定義します。インターフェイスを内部クラスに配置することはできません。 – EJP

答えて

0

なぜインナークラスにインターフェイスを配置していますか?それは外でうまくいくでしょう。

インターフェイスを持ち、アダプタの変数としてそのまま使用し、アダプタに渡されたオブジェクトがインターフェイスメソッドを実装しているかどうかを確認し、そのオブジェクトをインターフェイスにキャストします。

関連する問題