正确使用notifydatasetchanged

时间:2019-05-05 15:58:13

标签: java android

我正在开发一个包含带有某些文章的列表视图的应用程序,但是我对使用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();

                   }
                });

我会知道这种行为是否正确。

0 个答案:

没有答案