2011年02月17日

再びnull検出に戻す。そして……

今回更新の間隔が空いたのは、ひとつには変な理由があったからでした。
タイトルにある通りレコードを特定するのに、値のないカラムを使う方法から未使用時に空白を打ち込んで、その空白を検出する方法にいったん変更したのですが、再び値のないカラム(null)を検出する方法に変えました。
その理由は、やはりいちいち空白を打ち込むのは不自然だから。

しかし、真に時間がかかった理由はnull検出で、今後実装する予定であった「項目の移動」機能が成立するか証明しなければならないと思って前倒しで「項目の移動」機能を書いていたからでした。(とこうして述べても、どんなメモ帳アプリなのか明らかにしていない上では誰にも意味が判りませんね(笑))
ただし、移動機能なしで公開しようと思っていたくらいなので、予想通り移動機能は大変難しいものでした。
いままで書いたメソッドの中で(自分的に)最も複雑だったと言って良いかと思います。
もちろん、普通の頭脳を持っていれば難なく書けるものなのでしょうけど、僕の脳みそでは早々に思考が停止し、ログの結果を見ながら変数を調整するという非理論的な方法でコードを書いてます。
(そもそもループでカラムをandとかカンマで繋いでSQL文を生成するのって頭が混乱します)

そんなわけで、ようやく今日になってだいたい形になってきた気がしますが、まだ一部正しく動いていません。この間にも思わぬバグがいくつも発見され、その修正もしていたので一週間近くを費やし、かつ、やる気も記憶も失せて(本気でかなり前に書いたメソッドの意味が判らなかった)いたので、もう2月も半ばを過ぎてしまいましたねえ。
本当はListViewのItemではない余白のところをロングタップするとContextMenuが出るようにしたかったのですが(listView.setOnLongClickListener(l))、これはどうしてもうまくいかない模様。(listView.setOnItemClickListener(l)でないと駄目みたいですが、それならなぜsetOnLongClickListnerがあるのかも含めて分かりません)
これだけでも1〜2日費やしてしまった程なので。

そして、一通り動くようになったとしても、これからテストもやり直さなければなりませんし、また直したところから不具合が出るかも知れません。まだまだ時間がかかりそうですが、それより何より本当にこんなんで良いのだろうか?というそこはかとない疑問が浮かぶのを禁じ得ません。
前倒しで移動機能を書いたとはいえ、完成した気がまったくしませんし。
もちろん、公開はひとつの節目で、ベースとなるものがようやく完成するに過ぎない(本来想定した機能の半分も実装していない)のですが、それにしてもこんなに複雑怪奇な、どこかひとつ間違えたらバラバラになりそうなコードで良いのだろうかと悩みます。
本当はもっと絶対シンプルに書けるはずだと思うのですが。
似たような制御文とまとめられそうでまとめられない大量のAlertDialog。
なんだかとても正しくない気がします。
何度も書いてますが、ホント疲レタ……
posted by 白虹 at 23:14| Comment(0) | TrackBack(0) | Android開発