【发布时间】:2012-03-22 10:23:34
【问题描述】:
我在Android Compatibility Support Package 的帮助下使用 DialogFragment 创建了一个自定义 AlergDialog
在我的自定义对话框中,我在对话框中有一个列表视图,并且列表视图的内容是从 Android 中的 Sqlite 数据库加载的。此对话框仅从片段内的列表视图中弹出。
现在,每当我单击 listview(位于片段内)时,都会出现一个对话框,其中数据成功进入 listview,但每次我每次按下 listitem(位于片段内)时,数据都会从对话框列表视图中的数据库 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");
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;
}
【问题讨论】:
标签: android android-fragments android-dialog android-dialogfragment