2016-09-19 5 views
-1

EDIT: Die vorgeschlagene doppelte Frage beantwortet meine Frage in keiner Weise, Form oder Form.NullPointerException in RecyclerView Adapter

Ich habe Probleme beim Einrichten meines RecyclerView-Adapters. Ich bekomme zwei Fehler:

09-19 20:01:38.601 22710-22710/com.yitter.android E/RecyclerView: No adapter attached; skipping layout 

... und:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setAdapter(android.support.v7.widget.RecyclerView$Adapter)' on a null object reference 
    at com.yitter.feed.FeedActivity.lambda$retrieveYeets$68(FeedActivity.java:402) 
    at com.yitter.feed.FeedActivity.access$lambda$3(FeedActivity.java:0) 
    at com.yitter.feed.FeedActivity$$Lambda$4.done(Unknown Source) 
    at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:116) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

FeedActivity:

In meiner initialise() Klasse (innerhalb onCreate()), habe ich bis meine RecyclerView und Adapter:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
       recyclerView.setHasFixedSize(true); 
       adapter = new FeedAdapter(FeedActivity.this, retrieveYeets()); 
       recyclerView.setAdapter(adapter); 
       recyclerView.setLayoutManager(new LinearLayoutManager(this)); 

Ich gebe eine Liste basierend auf einer Abfrage:

public List<ParseObject> retrieveYeets() { 
     String groupId = ParseUser.getCurrentUser().getString("groupId"); 
     ParseQuery<ParseObject> query = new ParseQuery<>(ParseConstants.CLASS_YEET); 
     query.whereContains(ParseConstants.KEY_GROUP_ID, groupId); 
     query.orderByDescending("lastReplyUpdatedAt"); 
     query.setLimit(1000); 
     query.findInBackground((yeets, e) -> { 

      if (mSwipeRefreshLayout.isRefreshing()) { 
       mSwipeRefreshLayout.setRefreshing(false); 
      } 

      if (e == null) { 

       // We found messages! 
       mYeets = yeets; 

       String[] usernames; 
       usernames = new String[mYeets.size()]; 
       int i = 0; 
       for(ParseObject yeet : mYeets) { 
        usernames[i] = yeet.getString(ParseConstants.KEY_SENDER_NAME); 
        i++; 
       } 

       // Add data to FeedAdapter 
       FeedAdapter adapter = new FeedAdapter(
         FeedActivity.this, 
         mYeets); 
       recyclerView.setAdapter(adapter); 

      } 
     }); 

     return mYeets; 
    } 

Voll Code: https://gist.github.com/santafebound/e71bc433ddf03a791ac1d89679559490

FeedAdapter:

Ich habe das Gefühl, das Problem in meinem Adapter ist, aber ich kann es nicht herausgefunden. Was könnte schief gehen?

Voll Code: https://gist.github.com/santafebound/c8207bd9075f1025243e5b6661b7afc5


Antwort:

änderte ich dies in meinem MainActivity:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
       recyclerView.setLayoutManager(new LinearLayoutManager(this)); 
       recyclerView.setHasFixedSize(true); 
       adapter = new FeedAdapter(FeedActivity.this, retrieveYeets()); 
       recyclerView.setAdapter(adapter); 

und in meinem retrieveYeets() Methode entfernt die folgenden Zeilen:

+0

Ihr Fehler liegt auf der Hand. Das erste verursacht, weil Sie nicht den richtigen Adapter daran angebracht haben, der zweite sagte, dass Sie versuchen, Setater vor der Initialisierung recyclingView –

+0

Lol Sie Jungs fühlen sich salzig? – santafebound

Antwort

2

Vermutlich verweisen Sie auf eine Datei in Ihrem RecyclerView-Block in Ihrer XML-Layoutdatei, die nicht in Ihrem Zeichnungsordner oder einer anderen Datei oder Datei vorhanden ist. Überprüfen Sie die Fehlerzeilen vor diesen Zeilen, und Sie können Fehler in der Zeile sehen # ... dann überprüfen ...

+0

Ich glaube nicht, dass es eine fehlende Layoutdatei gibt. – santafebound

+0

Was ist das? Ich habe Hauptaktivität und Adapter gepostet. Fehle ich etwas? – santafebound

+0

soetwas wie folgt aus:

Verwandte Themen