« 18号さんと19号さんと | トップページ | ジェリービーンズ »

「アクションモードの呪いをかけられました」

 GridView で表示したアイテムごとにメニューを出そうということで、コンテキストメニューをはじめに実装。これで問題ないなと思っていたのだけれど、レシピ本を見ているとどうやら Action Mode というのだと複数を選択してまとめて処理できるのだとか。そういえば Android 標準のギャラリーであるとかでまとめて削除したりという機能があったなと思い出した。

 まとめて処理が必要なものはさほどないけれど、それもよいかと試してみることに。たしかに複数をまとめて選択できるようなのだが、どうも選択しているという状態が区別できない。レシピ本では ListView でのサンプルしかないのだが、選択したリスト項目は色が変わっていてわかるようになっている。GridView ではそうはならないのか?

 よくはわからないが調べていたら ImageAdapter のところで Checkable なレイアウトを用意してそこに画像なりを収めておけばよい、というような例が示されていたので試してみる。ところが、どうやってもやはり反映されない。よくよくコードを見ると、そのチェック状態を反映させるメソッドが実行される場所がどこにも見えない。実際動作させてみてもそこには絶対に到達しない。よくこれで反映できているな? と思うが、あるいはそれは自分が ViewPager に GridView を入れていたりすることとも関係するのかもしれないとも思う(実際のところはわからない)。

 ではといろいろ試行錯誤してなんとかはじめのロングプレス、つまり Action Mode を起動させる段階のアイテムは反映させることができたものの、以降のチェックは反映できない。そのアイテムにアクセスする手段がどうにもよくわからない。おそらく方法はちゃんとあるのだろうと思うのだけれど、そこまで調べることができなかった。

 ということで無理はせずにということで Action Mode を使うことをやめることにした。

 ところが、それらのコードをすっかり削除して十分確認したというのに、実行させると Action Mode を起動しようとしてエラーになる。謎だ。プロジェクトのクリアなども試してみたもののどうもよろしくない。やむなくいったん中断してから再開してみるとその部分に関しては問題なく動作するようになったが、ほかでエラーがでる。もっともこれは別の事情だとその後わかった。ただ、はじめの Action Mode を実行しようとする(らしき)動作はやはり謎。呪いにでもかかったかのごとく。

 ひとまずは基本的にコンテキストメニューでの処理としてほぼ実装が完了。ただ、ここでもコンテキストメニューを表示させた Grid のアイテムがどれなのかを取得することができなかったらしく、しばらくおかしな挙動になったのだった。考えてみればクリックではないのだからそれなりのリスナーを用意する必要があったのだなとあとから追加して解決したけれど。

 というわけで Action Mode にかまけていた遅れをようやく取り戻したというところ。まだまだ。

|

« 18号さんと19号さんと | トップページ | ジェリービーンズ »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 「アクションモードの呪いをかけられました」:

« 18号さんと19号さんと | トップページ | ジェリービーンズ »