확인란이있는 RecyclerView가 있습니다. 사용자가 체크 또는 체크 해제 할 때, 일치하는 제목을 포함하는 데이터베이스는 체크 박스가 체크되었는지 여부에 따라 부울을 업데이트합니다.RecyclerView Offscreen Checkbox 데이터
그러나이 목록에는 많은 확인란이 있기 때문에 그 중 일부는 화면에 표시되지 않으므로 항상 바인딩되지 않습니다.
사용자가 변경 사항을 저장하기 위해 확인을 클릭하면 체크 박스 목록을 검토하고 어떤 체크 박스가 선택되어 있는지 확인하고자합니다. 그러나 모든 것이 묶여 있지 않기 때문에 일부는 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
{
}
}
}
체크 된 모든 행에 대해 별도의 키/열을 만들고 항목을 선택하는 즉시 해당 키/열을 업데이트하고 확인해야 할 때이 키/열이 업데이트되었는지 여부를 확인하십시오 (true/false는 할 것이다) !! – shadygoneinsane
@shadygoneinsane 문제는 사용자가 확인을 클릭 할 때만 설정하려는 경우입니다. 때로는 취소하려는 경우가 있기 때문입니다. – amitairos
Ok를 누르면 키가 업데이트됩니다. 여기서 문제가 무엇인지 알 수 없습니다. 요소의 위치를 사용하여 키 값을 매핑하십시오. 전체 어댑터 코드를 여기에 게시 할 수 있습니까? !! – shadygoneinsane