2016-08-12 6 views
0

RecyclerViewを処理するカスタムアダプタを作成しました。クラス内のオーバーライドされたメソッドのみが検出されています

何らかの理由で、初期化後に呼び出すことのできる唯一のメソッドは、オーバーライドされたメソッドだけです。誰がこれがなぜなのか説明できますか?何も思いつきません!

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { 
    private List<Item> items; 

    public static class ViewHolder extends RecyclerView.ViewHolder { 

     private ImageView icon; 
     private TextView text; 

     public ViewHolder(View item) { 
      super(item); 

      text = (TextView) itemView.findViewById(R.id.t); 
      icon = (ImageView) itemView.findViewById(R.id.i); 
     } 

     .... 
    } 

    public CustomAdapter(List<Item> items) { 
     this.items = items; 
    } 

    @Override 
    public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup container, int type) { 
     View v = LayoutInflater.from(container.getContext()) 
       .inflate(R.layout.fragment, container, false); 

     return new ViewHolder(v); 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     //method content 
    } 

    // EVERY METHOD I HAVE WRITTEN FROM HERE ONWARDS GOES UNDETECTED 
    public int getCount() { 
     return items.size(); 
    } 
} 

つまり私は、アダプタのインスタンスをインスタンス化:

private RecyclerView.Adapter adapter = new CustomAdapter(items); 

をして、私はそれがgetCount()を検出しないadapter.getCount()呼び出そう。

getCount()「アダプタ」の後に入力を開始すると、オートコンプリートオプションが表示されません。 getCount()は、「方法を解決できません」というエラーを表示し、クラスのgetCount()は使用されていないことを示します。これは、それらの上に@overrideを持たないすべてのメソッドに適用されます。

あたかも方法が存在しないかのようです。私は彼らに電話することはできませんが、彼らはそこにいます。私は完全に困惑している!

+0

ポストあなたは、私は本当に私はそれを編集したあなたが – naffarn

+0

機能のいずれかを使用しようとしたときのいくつかのサンプルを出力しますそれをよりよく明瞭にしようとする。メソッドが存在しないかのようです。私はそれを呼び出すことはできません。上記のクラスのインスタンスをインスタンス化し、その上でgetCount()を呼び出そうとすると、メソッドが存在しないかのようになります。 –

+0

「検出されない」の意味を理解していない – javapalava

答えて

2

変更

private RecyclerView.Adapter adapter = new CustomAdapter(items); 

private CustomAdapter adapter = new CustomAdapter(items); 
+0

はい!どうもありがとうございます!私はこれを長い間見てきましたが、それを理解することはできませんでした! – javapalava

関連する問題