Mi rivolgo a un'app per Android all'API 15 e al minimo 8. Quindi utilizzo la libreria di supporto per gestire i frammenti. Ho una serie di frammenti che uso in diverse parti dell'app.Aggiungere un frammento come intestazione ListView
Ora, in un'attività Ho un ListView nel layout:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/listOfEvents"
android:layout_width="match_parent" android:layout_height="match_parent">
</ListView>
vorrei aggiungere un frammento del mio nell'intestazione ListView. Ho provato questo:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.event_open);
listOfEvents = (ListView) findViewById(R.id.listOfEvents);
Fragment fragment = new SortingStandardFragment();
getSupportFragmentManager()
.beginTransaction()
.add(fragment, null)
.commit();
View fragmentView = fragment.getView(); // problem: fragment is null!
listOfEvents.addHeaderView(fragmentView);
}
ma ottengo un errore dal fragment.getView() restituisce il valore null (documentazione di riferimento API dire che devo mettere un GroupView Id nella chiamata aggiuntivo, ma dove dovrebbero ho messo il GroupView in ? il layout c'è un altro modo di colpire nel segno
Non sono sicuro che questo può funzionare in questo modo, ma l'idea del frammento sta creando un framelayout impostando un id (puoi creare id aggiungendo il nome id nelle risorse), aggiungere come intestazione e quindi effettuare una transazione sostituendo quell'id con il frammento – sherpya