3

EclipseでADTを使用し、マスター/詳細フローを使用して新しいアクティビティを作成するようにADTに指示すると、このメソッドはフラグメントの1つに表示されます。

/**
 * Turns on activate-on-click mode. When this mode is on, list items will be
 * given the 'activated' state when touched.
 */
public void setActivateOnItemClick(boolean activateOnItemClick) {
    // When setting CHOICE_MODE_SINGLE, ListView will automatically
    // give items the 'activated' state when touched.
    getListView().setChoiceMode(
            activateOnItemClick ? ListView.CHOICE_MODE_SINGLE : ListView.CHOICE_MODE_NONE);
}

ただし、を実装したいと思いMultiChoiceModeListenerます。したがって、必要なものが削除されるため、このメソッドへのすべての参照を削除するCHOICE_MODE_MULTIPLE_MODAL必要があります。ActionModeただし、アイテムの詳細を表示しているので、アクティブでないときにリストからアイテムの1つを選択した後でも、個々のアイテムを「アクティブ」として表示したいと思います。(もちろん、必要に応じて切り替えます)それを行う方法はありますか?

4

1 に答える 1

1

ただし、アイテムの詳細をまだ表示しているため、ActionMode がアクティブでないときに、リストからアイテムの 1 つを選択した後、個々のアイテムを「アクティブ化」として表示する必要があります。(明らかに、適切な場合は切り替えます)それを行う方法はありますか?

まず第一に、あなたがやりたいことは少し直感に反するようです。コンテキスト アクション バーが表示されていない場合は行がアクティブになりますが、CAB が存在する場合はユーザーが複数の行を選択できるようになります (?!) (CAB が存在し、ユーザーはさまざまな行を選択しますか?!)。複数の行を選択 (アクティブ化) した状態で CAB を閉じるとどうなりますか? CAB を閉じると、詳細パネルはどうなりますか?

とにかく、おそらくあなたが望むことをする最も簡単な方法は、生成されたメソッドを(選択モードとともに)保持し、MultiChoiceListener. 代わりに、をシミュレートするActionModeために独自のものを管理します。これは の からトリガーされます。ListViewMultiChoiceModeListenerActionModeOnItemLongClickListenerListView

于 2013-02-23T13:55:11.107 に答える