[英]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.