4

この問題に関する多くの投稿を見てきましたが、どれも機能していないようです。だからここに行きます。

ICS/JB で Android アプリをテストしています。アイテムのリストがあり、そのリストのアイテムを長押しすると、コンテキスト アクション バーが表示されます。

アクション バーがポップアップすると、リスト セレクターは失われます。アクションバーが残っている限り、持続したいと思います。

セレクターを使用しました。1 つはリスト セレクター用、もう 1 つはリスト アイテム セレクター用です。活性化状態も実験しました。

最終的に機能したのは、アイテムクリックリスナーの背景を手動で変更したときだけでした。しかし、どの項目が選択されていて、どの項目が選択されていないかを追跡し、状態に応じてそれらをリセットするのは複雑すぎます。

アクションがそのコンテキストで実行されたときにリスト項目を強調表示する簡単な方法はありますか?

お知らせ下さい。私はこの問題に夢中です。

Al への対応: これらの順列の 1 つでは、選択は表示されますが、消えません。

コンテキスト アクション バーを閉じるか、バーのメニュー項目を選択すると、そのままになります。同じアイテムをもう一度選択すると、そのままになります。

唯一の方法は、リスト内の別のアイテムをクリックすることであり、選択は新しいアイテムにシフトします。

アイテムの選択:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
           <item 
    android:state_selected="true" 
    android:drawable="@android:color/black" />
            <item 
    android:state_activated="true" 
    android:drawable="@android:color/holo_blue_bright" />  
           <item 
    android:state_activated="true" android:state_focused="false"
    android:drawable="@android:color/holo_orange_light" />   
           <item 
    android:state_focused="true" 
    android:drawable="@drawable/selectedrow" />
      <item 
    android:state_pressed="true" 
    android:drawable="@android:color/holo_green_dark" />
       <item android:state_focused="false"
    android:drawable="@android:drawable/btn_radio" />
</selector>
4

1 に答える 1

0

セレクターが適切に設定されている場合は、onItemLongClickで受信したビューを選択済みに設定する必要があります

public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    arg1.setSelected(true);
    return true;
}
于 2013-02-10T17:09:00.213 に答える