Android - ListView 不刷新

标签 android android-fragments android-listview android-dialogfragment

我有一个包含按钮和 Listview 的 fragment 类,当单击按钮时,一个 DialogFragment 将出现在 fragment 类的顶部。它将接受用户输入并将其添加到数据库中,一切正常但 ListView 不更新,我知道我需要调用 adapter.notifyDataChange() 我将编写伪代码。

 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 字段的填写并按下 add 在数据库中插入数据并关闭 dialogFragment 但它不更新/刷新 ListView 时,我可以在哪里调用 notifyDataSetChanged();

最佳答案

在调用 notifyDataSetChanged 之前,您需要实际更改 ListView 的支持数据。例如,如果您按如下方式创建适配器:

    mAdapter = new MyAdapter(context, R.layout.item_listview_layout, mData);

然后您需要更新您的 mData 字段,然后才调用 notifyDataSetChanged

关于Android - ListView 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29134780/

相关文章:

android - 错误:无法解决:com.google.android.gms:play-services-ads:18.3.0

android - 在滑动时从 fragment 导航到 Activity

java - fragment 问题和主要 Activity 的膨胀问题

android - 防止最后一个 Fragment 从 backstack 中删除

android - 使用 HashMap 在带有 SimpleAdapter 的 ListView 中显示图像 - Android

android - 如何设置ListView项目高度

java - 将非特定类传递给另一个类

java - 如何禁用 EditText 并保持背景颜色为白色?

java - 尝试实现库时如何修复 list 合并失败错误?

java - 使用AsyncTask在ListView中显示数据,但没有调用onPostExecute