2016-10-21 77 views
-4

我收到以下代碼的錯誤。我不明白爲什麼,但adapter.notifyDataSetChanged();不起作用。錯誤消息是:「無法解析符號'適配器'」。無法解析符號'適配器'

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

這並不比任何噸的不同他人無法找到本網站詢問的符號錯誤。 – csmckelvey

+1

'adapter'是'PrintA'的'onPostExecute()'方法內的局部變量。在該方法之外的任何地方都不能引用它。 – CommonsWare

回答

1
MyAdapter adapter = new MyAdapter(result); 

通過

adapter = new MyAdapter(result); 

代替這一點,並聲明此全球

MyAdapter adapter; 

這樣

MyAdapter adapter; 

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

那麼我怎樣才能在適配器(在PrintB中)推送'結果'?我嘗試添加,(..),但現在不工作。 – Marco

+0

你需要停止模糊。 「不工作」是什麼意思?錯誤?例外?錯誤的輸出? – csmckelvey

+0

對不起,我無法在回收站中添加新元素(包含在'結果'中)。 – Marco