我正在为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
删除行时,应该将其从ListView
和SQLLite
中删除,但是正如之前所述,它找不到ID,所以它不会实际上什么也没做,但是会显示确认弹出消息。