[英]Can't update data for my list view
我目前正在尝试向我的应用程序添加功能,以便允许我的用户编辑用于填充我的Payments类中的列表视图项目的数据。
每当我输入要进行的更改并按“接受”时,列表视图就不会使用新编辑的数据进行更新。
以下是我的“添加付款”类的数据。
public void acceptClicked(View view)
{
failFlag = false;
checkEditTexts();
// if all are fine
if (failFlag == false)
{
MOSDatabase db = new MOSDatabase(this);
SQLiteDatabase datab = db.getWritableDatabase();
convertToString();
convertIntToString();
sPaymentDate = sPaymentYear + sPaymentMonth + sPaymentDay;
ContentValues vals = new ContentValues();
vals.put("PTITLE", sTitle);
vals.put("PDAY", sPaymentDay);
vals.put("PMONTH", sPaymentMonth);
vals.put("PYEAR", sPaymentYear);
vals.put("PA", sAmount);
vals.put("RMIN", sReminderMin);
vals.put("RHOUR", sReminderHour);
vals.put("RDAY", sReminderDay);
vals.put("RMONTH", sReminderMonth);
vals.put("RYEAR", sReminderYear);
vals.put("DATE", sPaymentDate);
if (checkbox.isChecked())
{
createAlarm();
}
if(itemInfo == false)
{
datab.insert("PaymentTable", null, vals);
datab.close();
}
if(itemInfo == true)
{
datab.update("PaymentTable", vals, "PTITLE", null);
}
Intent openReminder = new Intent("com.studentbudget.PAYMENTS");
startActivity(openReminder);
finish();
}
}
如果我要添加新的付款,则convertIntToString方法会将hinterDay / Month / Year等转换为字符串版本(sReminderDay / Month / Year等),否则它将使用iPaymentDay,iPaymentMonth,iPaymentYear等。
我最初尝试过几次,但是我在datab.update方法中的最后一个参数上使用了String [] {“ ITITLE},但它没有用。
编辑(27/8/13)
我尝试了bakriOnFire发布的代码,它更新了除项目标题以外的所有内容。
我也尝试将第三个参数更改为“ null”。 这使我可以编辑标题,但是它可以编辑列表视图中的所有项目。
有人可以告诉我如何为列表视图更新项目的所有字段吗? 感谢您发布任何解决方案。
编辑(28/8/13)
编辑标题。 第一列是唯一不更新的列。
编辑(28/8/13)
添加了屏幕截图
第一个图像显示Payments活动上的列表视图,第二个图像显示Add Payments活动。
update
的第三个参数是为更新提供的过滤器,您已将其赋予值PTITLE 。 它不匹配任何东西,因为它是列名。 您正在尝试更新PTITLE等于sTitle的行,因此更新应为-
datab.update("PaymentTable", vals, "PTITLE='"+sTitle+"'", null);
我不确定这是否是您要执行的操作,但希望它可以给您一些提示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.