ListView
で1つまたは複数の項目を選択すると、余分なメニュー項目(コンテキストアクションバー)を表示しようとしています。基本的には、選択した項目にDBのフィールドがtrueに設定されているかどうかを確認しています。もしそうなら、余分なメニュー項目を追加します。AndroidはDBフィールドに基づいてメニュー項目を動的に追加します
onItemCheckedStateChanged()
で選択したアイテムのDBにクエリを実行して、メニューを無効にしようとしました。これはonPrepareActionMode()
と呼ばれ、必要に応じて余分なオプションを表示することができます。
特別なDB列がfalseに設定されている項目がonItemCheckedStateChanged()
で選択され、余分なメニュー項目がonPrepareActionMode()
になると、DB列ですでに選択されているオプションが記憶されないため、これは機能しません除去される。
どのようにこれに近づけることができますか?基本的には、選択されたListView
アイテムのすべてを覚えておく必要があります。これは、DB内の余分なフィールドがtrueに設定されているので、余分なメニューアイテムを表示できます。また、選択したListView
アイテムにDBフィールド。
フィールドのIDを「true」に設定して同様のことを考えていましたが、これははるかに優れています。ありがとう、ウラジミール:)。この質問が役に立ちそうな人には、CABが破棄されたときにカウンタを0に設定することを忘れないでください。そうでない場合は、DBフィールドが「true」に設定された項目を選択し、 1を選択します。 – Daniel