我有一个包含按钮和ListView的片段类,当单击该按钮时,DialogFragment将出现在片段类的顶部。它将采取用户输入并将其添加到数据库中,一切正常,但listview不更新,我知道我需要调用adapter.notifyDataChange()我会写psudeo代码。Android - ListView不刷新
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_notes, container, false);
add = (Button) view.findViewById(R.id.button1);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//New DialogFragment show.dialog
}
});
filllist(view);
return view;
}
另一类,创造我DialogFragment
public Dialog onCreateDialog(Bundle savedInstanceState){
final AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
final View view = getActivity().getLayoutInflater().inflate(R.layout.custom_layout, null);
build.setView(view);
build.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final String text = ((EditText) view.findViewById(R.id.randomtext)).getText().toString();
//Call insert method of database helper. pass user input
//dismiss
adapter.notifyDataSetChanged();
}
});
build.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismiss();
}
});
return dialog.create();
}
当用户完成在EDITTEXT领域灌装机在数据库中添加插入数据或解散dialogFragment,但它不更新/刷新列表视图中,我可以在哪里调用notifyDataSetChanged();
好吧,我需要创建一个新的方法调用mAdapter = new MyAdapter(context,R.layout.item_listview_layout,mData);然后adapter.notifyDataSetChanged。作为一个片段,我可以在onActivityCreated中调用这个方法吗? – Mark 2015-03-18 23:56:00
在我可以回答这个问题之前,你可以发布你的DialogFragment中的'adapter'变量是如何初始化的吗? – Mikhail 2015-03-19 00:03:25
适配器只是我的一个listview的自定义布局,并映射出在TextView中获得的数据,但我通过CustomAdapter适配器初始化它;制作一个CustomAdapter的实例。我很可能需要在我的fragment类中调用notifydatachange onActivityCreated而不是onCreateView – Mark 2015-03-19 00:05:26