2016-10-21 26 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