gpt4 book ai didi

Android - ListView 不刷新

转载 作者:行者123 更新时间:2023-11-30 02:17:00 24 4
gpt4 key购买 nike

我有一个包含按钮和 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com