如何修复来自调试的“ E / BudgetWatch:删除预算:空”

时间:2019-04-10 15:16:26

标签: java android

我正在为ListView做一个删除函数,我从一个现有的类中复制了代码,它适用于该类,但是当我尝试在另一个类中使用它时,我得到了:

  

E / BudgetWatch:删除预算:空

从调试模式开始,实际上不执行任何操作。我尝试搜索我在互联网上找到的其他删除功能,但对我来说不起作用。

    @Override
    public boolean onContextItemSelected(MenuItem item)
    {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
        ListView listView = (ListView) findViewById(R.id.list);

        if(info != null)
        {
            final Budget budget = (Budget) listView.getItemAtPosition(info.position);

            int id = item.getItemId();

            final Bundle b = getIntent().getExtras();
            final String budgetName = b != null ? b.getString("id") : null;
            if (budget != null && item.getItemId() == R.id.action_edit)
            {
                Intent i = new Intent(getApplicationContext(), BudgetViewActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("id", budget.name);
                bundle.putBoolean("view", true);
                i.putExtras(bundle);
                startActivity(i);

                return true;
            }
            if (budget != null && item.getItemId() == R.id.action_delete)
            {
                android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(this);
                builder.setTitle(R.string.deleteBudgetTitle);
                builder.setMessage(R.string.deleteBudgetConfirmation);
                builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        Log.e(TAG, "Deleting budget: " + budgetName);

                        _db.deleteBudget(budgetName);

                        finish();
                        dialog.dismiss();
                    }
                });
                builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        dialog.dismiss();
                    }
                });
                android.support.v7.app.AlertDialog dialog = builder.create();
                dialog.show();
            return true;
            }
        }

我期望当我从ListView删除行时,应该将其从ListViewSQLLite中删除,但是正如之前所述,它找不到ID,所以它不会实际上什么也没做,但是会显示确认弹出消息。

0 个答案:

没有答案