0

古いアプリでは、通常onCreateContextMenu()、コンテキストアクションに次の署名を使用します。

public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo)

これmenuInfoにより、リスト内のコンテキストメニューが作成されていたアイテムに関する情報が提供されます。次に、それに適したアクションを見つけて、メニュー項目として作成する権利Uriを取得できます(自動インテントなどを使用)。

現在、新しいAPIでは、これに代わるものは、以下を使用するコンテキストアクションバーActionModeです。

public boolean onCreateActionMode(ActionMode mode, Menu menu) 
public boolean onPrepareActionMode(ActionMode mode, Menu menu)

しかし、ここでは、どうすればアイテムを区別したり、この位置情報を取得したりできますか?

バッチモードの場合、このようなパラメータが存在しないことは理にかなっています。何にでも適用できるアクションのみを提供する必要があるためです。しかし、シングルモードの場合、ボタンがアクションバーにあることを除けば、これは古いAPIと完全に同等ではないでしょうか。

参照:http ://developer.android.com/guide/topics/ui/menus.html#context-menu

4

1 に答える 1

0

「バッチ」選択の場合でも、目的のアクションを実行するために選択されているアイテムを見つける必要があります。

私が知る限り、「どのアイテムが選択されているか」という部分は、これらのコールバックによって対処されず、開発者に任されています。項目をマークするための一般的な方法はなく、一般的なパターンはチェック ボックスを使用することです。リスト項目の「選択済み」の状態は一時的な状態であってはならないことに注意してください。項目をクリックして「選択済み」としてマークする場合、ユーザーがどの項目を理解できるように視覚的に選択されたままにする必要があります。取り組んでいます。したがって、通常の ListView をだまして「選択」状態を維持するか、チェック ボックスまたは同様のメカニズムを使用することができます。これらのアプローチのいずれにおいても、選択された項目が 1 つであろうと多数であろうと、リストがあり、リストを調べて、選択されている項目を取得し、それらに対して目的のアクションを実行できます。

于 2012-12-31T05:19:13.897 に答える