2016-10-21 10 views
-4

次のコードでエラーが発生します。私は理由を理解できませんが、adapter.notifyDataSetChanged();は動作しません。エラーのメッセージは次のとおりです: "シンボル 'アダプタ'を解決できません。シンボル 'adapter'を解決できません

final String URL = "http://example...."; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    rv = (RecyclerView) findViewById(R.id.rv); 

    .... 

    public class PrintA extends AsyncTask<String, String, List<Model>> { 
     .... 
     @Override 
     protected void onPostExecute(final List<MyModel> result) { 
      super.onPostExecute(result); 
      if (result != null) { 
       MyAdapter adapter = new MyAdapter(result); 
       rv.setAdapter(adapter); 
      } else { 
       Toast.makeText(getApplicationContext(), "no internet",     
      } 
     } 
    } 

    new PrintA().execute(URL); 

    rv.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     .... 
     public class PrintB extends AsyncTask<String, String, List<Model>> { 
      .... 

      @Override 
      protected void onPostExecute(final List<MyModel> result) { 
       super.onPostExecute(result); 
       if (result != null) { 
        .... 
        adapter.notifyDataSetChanged(); 
       } else { 
        Toast.makeText(getApplicationContext(), "can't add",     
       } 
      } 

      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       ....    
       new PrintB().execute(URL); 
      } 
     } 
    } 
} 
+0

のようなグローバル

MyAdapter adapter; 

でこれを宣言彼は他の人がこのウェブサイトで尋ねられたシンボルエラーを見つけることができません。 – csmckelvey

+1

'adapter'は' PrintA'の 'onPostExecute()'メソッド内のローカル変数です。そのメソッドの外側のどこでも参照することはできません。 – CommonsWare

答えて

1
MyAdapter adapter = new MyAdapter(result); 

これは、Tのいずれよりも違いはありません

adapter = new MyAdapter(result); 

することによって、これを置き換えると、この

MyAdapter adapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
+0

そして、どうすれば '結果'をアダプタ(PrintB)にプッシュできますか?私は追加してみましたが(..)、今は動作しません。 – Marco

+0

あなたはあいまいではなくなります。 「働かないでください」とはどういう意味ですか?エラー?例外?間違った出力? – csmckelvey

+0

はい、申し訳ありませんが、私はrecyclerviewに新しい要素( 'result'に含まれています)を追加できません。 – Marco

関連する問題