Я создал пользовательский AlergDialog, используя DialogFragment с помощью Android Compatibility Support Package
В моем настраиваемом диалоговом окне у меня есть представление списка внутри диалога, и содержимое просмотра списка загружается из базы данных Sqlite в Android. Это диалоговое окно появляется из списка, который находится только внутри фрагмента.
Теперь, когда я нажимаю на просмотр списка (который находится внутри фрагмента), появляется диалоговое окно с данными в виде списка успешно, но каждый раз, когда я нажимаю на элемент списка (который находится внутри фрагмента) каждый раз, данные загружаются база данных в виде списка в диалоговом окне bcoz onCreate is being called every time
так что я хочу это data should be loaded at once for all listitem of listview which is inside of fragment.
код
Всякий раз, когда щелкают элемент списка во фрагменте, я вызываю пользовательский DialogFragment
DalogFragment newFragment = TemplateToContact.newInstance("hi");
newFragment.show(getFragmentManager(), "dialog");
OnCreate of DialogFragment
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
contactDB = new ContactDB(getActivity().getApplicationContext());
contactDataList = contactDB.getAllContacts();
templateContactAdapter = new TemplateContactAdapter();
}
в OnCreateDialog я создаю настраиваемое поле alerttdialog, устанавливаю адаптер и возвращаю его
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater factory = LayoutInflater.from(getActivity());
View v = factory.inflate(R.layout.cdialog, null);
builder = new AlertDialog.Builder(getActivity());
builder.setView(v);
templateContactDlg = builder.create();
templateContactList = (ListView)v.findViewById(R.id.contactDlgList);
templateContactList.setAdapter(templateContactAdapter);
return templateContactDlg;
}