NotifyDataSetChanged() 关闭警报对话框后不更新列表视图

问题描述

在我的适配器类中,我创建了一个警报对话框并添加一个更新按钮,它允许我更新列表视图中的项目,它更新我的列表视图,但只有当我离开页面并返回它时,我已使用 notifydatasetchanged 但它似乎不起作用,我希望它在对话框关闭后立即在列表视图上更新。

更新按钮

viewHolder.btndisplayUpdate.setText("Update");
        viewHolder.btndisplayUpdate.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                updateCrime(crimes);
            }
        });

更新方法

private void updateCrime(CrimesDelete crimes){
        AlertDialog.Builder popupWindow = new AlertDialog.Builder(context);
        LayoutInflater inflater = LayoutInflater.from(context);
        View root = inflater.inflate(R.layout.dialog_update,null);
        popupWindow.setView(root);

        AlertDialog alertDialog = popupWindow.create();
        alertDialog.show();

        editLocation = (EditText)root.findViewById(R.id.editText_location);
        editType = (EditText)root.findViewById(R.id.editText_type);
        editDescription = (EditText)root.findViewById(R.id.editText_description);
        editDate = (EditText)root.findViewById(R.id.textViewDate);
        editTime = (EditText)root.findViewById(R.id.textViewTime);

        Spinner spinner = (Spinner) root.findViewById(R.id.editText_rating);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromresource(
                getContext(),R.array.rating,android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setonItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {
            public void onItemSelected(AdapterView<?> parent,View view,int pos,long id) {
                editrating = parent.getItemAtPosition(pos).toString();
                if (pos==0){
                    editrating = null;
                }
            }
            public void onnothingSelected(AdapterView<?> parent) {
            }
        });

        editLocation.setText(crimes.getLOCATION());
        editType.setText(crimes.getTYPE());
        editDescription.setText(crimes.getDESCRIPTION());
        editDate.setText(crimes.getDATE());
        editTime.setText(crimes.getTIME());

        root.findViewById(R.id.btnAdd).setonClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){

                String location = editLocation.getText().toString().trim();
                String type = editType.getText().toString().trim();
                String description = editDescription.getText().toString().trim();
                String date = editDate.getText().toString().trim();
                String time = editTime.getText().toString().trim();
                String rating = spinner.getSelectedItem().toString().trim();

                DB_CRIME.updateDate(crimes.getID(),location,type,description,date,time,rating);

                loadUpdatedCrimes();
                alertDialog.dismiss();
            }
        });

    }

    private void loadUpdatedCrimes() {
        notifyDataSetChanged();
        Toast.makeText(getContext(),"Crime has been Updated",Toast.LENGTH_SHORT).show();
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...