私はチェックボックス付きのRecyclerViewを持っています。ユーザーがチェックを入れるかチェックを外すと、一致するタイトルを含むデータベースは、チェックボックスがチェックされているかどうかに応じてブール値を更新します。RecyclerViewオフスクリーンチェックボックスデータ
ただし、このリストには多くのチェックボックスが存在するため、一部はオフスクリーンで表示されるため、常にバインドされません。
ユーザーが[OK]をクリックして変更を保存すると、チェックボックスのリストを調べて、チェックボックスのチェックボックスをオンにします。しかし、それらのすべてが束縛されているわけではないので、いくつかはnullを返し、私はそれらをチェックすることはできません。
どうすれば解決できますか?ここで
は私のコードです:はい
OKButton.Click += (s, e) =>
{
SQLiteDatabase db = SQLiteDatabase.OpenDatabase(dbPath, null, DatabaseOpenFlags.OpenReadwrite);
for (int i = 0; i < mAdapter.ItemCount; i++)
{
try
{
if ((mRecyclerView.FindViewHolderForAdapterPosition(i) as TimesSettingsAdapter.MyView).mTime.Checked)
{
string sql = "UPDATE Times SET Show = 'yes' WHERE Id = " + (i + 1).ToString();
db.ExecSQL(sql);
}
else
{
string sql = "UPDATE Times SET Show = 'no' WHERE Id = " + (i + 1).ToString();
db.ExecSQL(sql);
}
}
catch
{
}
}
}
チェックしたすべての行に対して個別のキー/列を作成し、アイテムがチェックされるとすぐにそのキー/列を更新し、チェックする必要があるときに、このキー/列が更新されたかどうかをチェックします偽はするだろう)!! – shadygoneinsane
@shadygoneinsane問題は、ユーザーが[OK]をクリックしたときにチェックするときではなく、キャンセルしたいときがあるためです。 – amitairos
Okを押したときにキーを更新します。ここに問題が何も表示されません 要素の位置を使用してキー値をマップします ここにアダプタコード全体を投稿できますか。 – shadygoneinsane