我正在开发一个包含带有某些文章的列表视图的应用程序,但是我对使用notifyDataSetChanged()感到困惑。
我的困惑源自插入操作,因为我想从对话框向列表视图添加新项。在对话框的“添加”按钮上单击“问题”:我创建了一个新的Product项并添加到productsList,然后调用notifyDataSetChanged()刷新listview,但是由于我的listview无论如何都已更新,我不知道它是否被调用,因此无法调用它正确与否还因为如果不使用对话框添加,而没有通知方法,则listview不会刷新。
我做了一些研究,所有的人都使用通知方法。
在我的片段中使用的代码下面:
productsList = new ArrayList<>();
mAdapter = new products_list_adapter(getActivity(), productsList);
asyncProducts = new GetProductsAsyncTasks(getActivity(), productsList, listViewProducts);
asyncProducts.execute();
final Dialog dialog = new Dialog(getActivity());
btnAggiungiProdotto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.setTitle("Add");
dialog.setContentView(R.layout.input_dialog);
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, 1000);
dialog.setCancelable(true);
Button btnConferma = (Button) dialog.findViewById(R.id.btnConferma);
btnConferma.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText txtDescr = (EditText) dialog.findViewById(R.id.edtDescrizione);
EditText txtBarcode = (EditText) dialog.findViewById(R.id.edtBarocode);
Product p = new Product();
p.SetDescription(txtDescr.getText().toString());
p.SetBarCode(txtBarcode.getText().toString());
productsList.add(p);
mAdapter.notifyDataSetChanged();
dialog.dismiss();
}
});
我会知道这种行为是否正确。