10

logcat Fehler: Kein Adapter angeschlossen; Layout überspringenKein Adapter angeschlossen; Layout überspringen

Ich habe das Kontextargument mit getActivity() geändert, aber die App läuft immer noch nicht.

public class FragmentActivity extends Fragment { 
    private RecyclerView mRecyclerView; 
    private CountryAdapter mAdapter; 
    private LinearLayoutManager layoutManager; 
    public FragmentActivity(){} 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.activity_main, container, false); 
     mRecyclerView = (RecyclerView) rootView.findViewById(R.id.list); 
     layoutManager = new LinearLayoutManager(getActivity()); 
     mRecyclerView.setLayoutManager(layoutManager); 
     mRecyclerView.setAdapter(mAdapter); 
     mAdapter = new CountryAdapter(CountryManager.getInstance().getCountries(), R.layout.card_layout, getActivity()); 
     return rootView; 
    } 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 
} 

Antwort

14

Sie haben den Adapter nicht anschließen, weil Sie es erstellen, nachdem Sie versuchen, es zu befestigen:

mRecyclerView.setAdapter(mAdapter); // Here, mAdapter is null 
mAdapter = new CountryAdapter(CountryManager.getInstance().getCountries(), R.layout.card_layout, getActivity()); 
+0

danke für die Antwort, ich ataching meinen Adapter jetzt, aber es zeigt immer noch nicht meine Liste – kinsell

+0

'CountryManager' und' CountryAdapter' wahrscheinlich falsche/leere Daten zurück. Sie sind keine Systemklassen, daher müssten Sie eine Quelle angeben. – StenSoft

+0

Nun, sie geben Daten zurück, wenn ich keine Fragmente verwende, also dachte ich, das Problem liegt in der Fragmentaktivität – kinsell

4

In meinem Fall tritt dieses Problem, weil es war ein Blick auf mein Layout, die meine Liste verschoben Container und es wurde zu klein angezeigt