ちょっと開発やったのだが・・・
今日は年末に考えてたチェックリストの制作をちょっとやったのだが、
一応入力できる感じにはすぐ作れたが、変更して再起動すると何かおかしい事に・・・
今のところはEditTextとCheckBoxが並んだListViewで、
データ用のArrayListとか用意せずにSimpleCursorAdapterを使って直接表示したので変更が発生したら即時記録したかったので、
setViewBinderでListView内の各Viewにイベントを設定して保存するようにしたのだが、update対象の行がおかしいことになっているような・・・
今日は原因の究明は諦めたが、setViewBinderのsetViewValueが、
columnIndexはSQLiteクエリのselect結果1行分のうち対象データのカラムの番号で0からになると思われるので、
primary keyもselectしておいて、primary keyが先頭のクエリなら、
final intにしておいてupdateクエリの際にwhereで行指定したんだが、
なんかおかしな事なって、エラーにはならんしデバックも難しかった。
insertとupdateの発生する箇所と再起動の際に、細かくdbファイルを覗けば究明できるかな?
UIはシンプルにするんで、この問題が解決すれば時間はかからなそう。
一応入力できる感じにはすぐ作れたが、変更して再起動すると何かおかしい事に・・・
今のところはEditTextとCheckBoxが並んだListViewで、
データ用のArrayListとか用意せずにSimpleCursorAdapterを使って直接表示したので変更が発生したら即時記録したかったので、
setViewBinderでListView内の各Viewにイベントを設定して保存するようにしたのだが、update対象の行がおかしいことになっているような・・・
今日は原因の究明は諦めたが、setViewBinderのsetViewValueが、
public boolean setViewValue(View view,Cursor cursor, int columnIndex){}
と、View,Cursor,columnIndexしかくれないのね。columnIndexはSQLiteクエリのselect結果1行分のうち対象データのカラムの番号で0からになると思われるので、
primary keyもselectしておいて、primary keyが先頭のクエリなら、
cursor.getInt(0);
でキーが取得できるつもりでいるんで、final intにしておいてupdateクエリの際にwhereで行指定したんだが、
なんかおかしな事なって、エラーにはならんしデバックも難しかった。
insertとupdateの発生する箇所と再起動の際に、細かくdbファイルを覗けば究明できるかな?
UIはシンプルにするんで、この問題が解決すれば時間はかからなそう。