2016-09-23 1 views
0

Ich versuche, den Adapter eines RecyclerView innerhalb der onCreate() zu setzen. Ich habe gelesen, dass die notifyDatasetChanged() nur auf dem Haupt-Thread aufgerufen werden kann. Aber wie kann dies erreicht werden? Hier ist mein Code so weit:java.lang.IllegalMonitorStateException: Objekt nicht durch Thread vor notify() gesperrt - onResponse

RecyclerView recyclerViewSt; 
List<GitHubstarredRepos> myDataSource = new ArrayList<>(); 
RecyclerView.Adapter myAdapter; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 

    recyclerViewSt = (RecyclerView) findViewById(R.id.starred_repos_recycler_view); 
    recyclerViewSt.setLayoutManager(new LinearLayoutManager(this)); 

    myAdapter = new StarredReposAdapter(myDataSource, R.layout.list_item_starred_repo, 
      getApplicationContext()); 

    recyclerViewSt.setAdapter(myAdapter); 
} 

public void loadStarredRepos (View view){ 
    GitHubStarredRepoAPI apiService = 
      ApiClient.getClient().create(GitHubStarredRepoAPI.class); 

    Call<List<GitHubstarredRepos>> call = apiService.getStarredRepoName(newString); 
    call.enqueue(new Callback<List<GitHubstarredRepos>>() { 
     @Override 
     public void onResponse(Call<List<GitHubstarredRepos>> call, Response<List<GitHubstarredRepos>> 
       response) { 

      myDataSource.clear(); 
      myDataSource.addAll(response.body()); 
      recyclerViewSt.notify(); 

    } 

Vielen Dank!

Antwort

1

anstelle der Benachrichtigung RecyclerView, Benachrichtigen Sie Ihre Adapter.

+0

Oh, so einfach! Danke vielmals! – user6456773

+0

mein Vergnügen .. :) akzeptiere meine Antwort, wenn ich geholfen habe. :) – LearnPainLess

Verwandte Themen