我在Android Compatibility Support Package
在我的自定义对话框中,我在对话框中有一个列表视图,并且正在从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.
代码
每当点击片段中的listitem时,我都会调用自定义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;
}
答案 0 :(得分:1)
你说你使用DialogFragment,但你的代码是AlertDialog。 Here是如何使用DialogFragment的示例。 Google Android团队建议您使用DialogFragment,而不是AlertDialog。
加入:
@Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); if (savedInstanceState != null) { aboutFile = savedInstanceState.getString(FILE_NAME); } } @Override public void onSaveInstanceState(Bundle outState) { outState.putString(FILE_NAME, aboutFile); }
要注入帮助程序类,请阅读this,例如。