現在、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 メソッドは、新しい支払いを追加する場合、reminderDay/Month/Year などを文字列バージョン (sReminderDay/Month/Year etC) に変換します。それ以外の場合は、iPaymentDay、iPaymentMonth、iPaymentYear などを使用します。
これを数回試しましたが、元々は datab.update メソッドの最後のパラメーターに String[]{"ITITLE} を使用していましたが、機能していませんでした。
編集 (27/8/13)
bakriOnFire によって投稿されたコードを試してみました。アイテムのタイトル以外はすべて更新されます。
また、3 番目のパラメーターを「null」に変更しようとしました。これにより、リストビューのすべてのアイテムを編集しても、タイトルを編集できました。
リスト ビューの項目のすべてのフィールドを更新する方法を誰か教えてもらえますか? 投稿されたソリューションに感謝します。
編集 (28/8/13)
タイトルを編集しました。更新されない唯一の列は最初の列です。
編集 (28/8/13)
スクリーンショットを追加
最初の画像は Payments アクティビティのリスト ビューを示し、2 番目の画像は Add Payments アクティビティを示しています。