Я новичок в программировании для Android. Я попробовал ListFragment, заполненный из базы данных, и он работает хорошо.
Я мог отображать значения, но когда я пытаюсь обновить представление, отделив и присоединяя фрагмент снова, получилось представление содержимого ошибки, еще не созданное на getListView(), которое я надел onActivityCreated.
Любые идеи?ListFragment «Просмотр содержимого еще не создан» после отсоединения
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
listView = getListView();
db = new DatabaseAccess(getActivity().getApplicationContext());
List<Contact> contacts = db.getAllContacts();
if (contacts.size() > 0) {
List<Map<String, String>> contactList = new ArrayList<Map<String, String>>();
for (Contact con : contacts) {
Map<String, String> data = new HashMap<String, String>(2);
data.put("name", con.getName());
data.put("number", con.getNumber());
contactList.add(data);
}
SimpleAdapter adapter = new SimpleAdapter(getView().getContext(), contactList, android.R.layout.simple_list_item_2, new String[] {"name", "number"}, new int[] {android.R.id.text1, android.R.id.text2});
listView.setAdapter(adapter);
} else {
setEmptyText("Masih belum ada kontak");
}
setListShown(true);
db.closeDB();
}
, когда я пытаюсь обновить фрагмент
void refreshFragment() {
Fragment frg = getFragmentManager().findFragmentById(R.id.fragment);
FragmentTransaction fragTransaction = this.getFragmentManager().beginTransaction();
fragTransaction.detach(frg);
fragTransaction.attach(frg);
fragTransaction.commit();
}
Да, не обновляйте фрагмент с помощью отсоединения, прикрепите. Найдите findFragment, проверьте, является ли фрагмент правильным экземпляром и вызывает функцию обновления, которая будет просто обновлять содержимое. – Raanan
@ Raanan: спасибо, но, пожалуйста, объясните, «проверьте, является ли фрагмент правильным экземпляром», как в том, как это сделать? – saintfalcon
if (фрагмент instanceof MyFragment) {...} перед тем, как передать его в MyFragment, точно, как вы это сделали. – Raanan