我目前正在尝试向我的应用程序添加一项功能,以便我可以允许我的用户编辑用于填充列表视图项目的数据,该列表视图包含在我的 Payments 类中。
每当我输入我希望进行的更改并按接受时,我的列表视图都不会使用新的编辑数据进行更新。
下面是我的 Add 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 方法会将提醒日/月/年等转换为字符串版本(sReminderDay/Month/Year 等),否则它使用 iPaymentDay、iPaymentMonth、iPaymentYear 等。
我已经尝试了几次,最初我使用 String[]{"ITITLE} 作为 datab.update 方法中的最后一个参数,但它不起作用。
编辑 (27/8/13)
我已经尝试了 bakriOnFire 发布的代码,它会更新除项目标题之外的所有内容。
我还尝试将第三个参数更改为“null”。这使我可以编辑标题但是它编辑了我的列表视图中的所有项目。
有人可以告诉我如何为我的列表视图更新项目的所有字段吗?感谢您发布的任何解决方案。
编辑 (28/8/13)
编辑了标题。唯一不更新的列是第一列。
编辑 (28/8/13)
添加了屏幕截图
第一张图显示了付款活动的列表视图,第二张图显示了添加付款活动。