Ich erstelle eine Kontaktliste App mit Fragmenten, wobei ein Frag eine Liste von Namen in der Kontaktliste ist und der andere die restlichen Details. HierRefreshing ArrayAdapter onResume [notifyDataSetChanged() funktioniert nicht]
ist die Klasse, die die Liste der Namen zeigt
public class MyListFragment extends ListFragment {
private ContactStorage contactStorage = new ContactStorage();
public final static String TAG = "FRAGMENTS";
private MainActivity parent;
ArrayAdapter<String> adapter;
ArrayList<String> entries = new ArrayList<String>();
String array[];
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.list_layout, null);
parent = (MainActivity) getActivity();
entries = contactStorage.getContactListNames();
adapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),
android.R.layout.simple_list_item_1, entries);
setListAdapter(adapter);
Log.d(TAG, "Adapter created");
array = contactStorage.getContactDetails();
return v;
}
@Override
public void onResume() {
super.onResume();
entries = contactStorage.getContactListNames();
adapter.notifyDataSetChanged();
Log.d(TAG, "List Frag Resumed");
}
}
Das Problem, das ich habe ist, dass die ArrayAdapter nicht auf Lebenslauf nicht aktualisieren.
Wenn der Bildschirm gedreht wird, ist seine feine wie OnCreateView() erneut ausgeführt, aber ich brauche es auf OnResume zu aktualisieren. Ich habe über diese Site nachgeladen und nichts gefunden außer "notifyDataSetChanged()" zu benutzen, was nicht funktioniert.
Nun, was erwarten Sie? Sie rufen die 'Einträge' ab, bauen aber Ihren 'Adapter' nicht neu auf.Verschiebe die beiden Zeilen 'volts =' und 'adapter =' von 'onCreate()' nach 'onResume()' (das solltest du nur einmal tun), vergiss 'entries =' und 'notify' in' onResume() ' und dir wird es gut gehen. –
@ClassStacker - Immer noch das gleiche Problem. Aktualisiert die Liste erst, wenn der Bildschirm gedreht wurde. – RockJake28
Umm ja, tut mir leid, Sie müssen auch die SetListAdapter() dort tun. –