我在 DialogFragment 的帮助下创建了一个自定义的 AlergDialogAndroid Compatibility Support Package
在我的自定义对话框中,我在对话框中有一个列表视图,并且列表视图的内容是从 Android 中的 Sqlite 数据库加载的。此对话框从仅位于片段内的列表视图中弹出。
现在t,每当我点击listview(在片段内)时,都会出现一个对话框,将数据成功放入listview,但每次我每次按下listitem(在片段内)时,数据都会从数据库中加载一个对话框的列表视图 bcozonCreate 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");
DialogFragment 的 OnCreate
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
contactDB = new ContactDB(getActivity().getApplicationContext());
contactDataList = contactDB.getAllContacts();
templateContactAdapter = new TemplateContactAdapter();
}
在 OnCreateDialog 我创建一个自定义警报对话框,设置适配器并返回它
@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;
}