2017-10-19 7 views
0

Si je sélectionne UNE ligne dans ma ListView, elle est mise en surbrillance mais chaque fois que je passe en mode MultipleSelection (onLongClick, # lignes sélectionnées, Barre d'actions contextuelles), les autres lignes que je sélectionne ne reste en surbrillance MAIS est sélectionné selon CAB comme indiqué, "3 lignes sélectionnées".Autres lignes sélectionnées dans ListView sélectionnées mais non mises en surbrillance

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
... 
> 
<HorizontalScrollView 
... 
> 
    <LinearLayout 
    ... 
    > 
     <TableLayout 
     ...  
     > 
      <TableRow 
      ... 
      > 
       <TextView 
       ... 
       /> 
       <TextView 
       ... 
       /> 
      </TableRow> 
     </TableLayout> 

     <ListView 
      android:id="@+id/db_op_data_grid" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:listSelector="@drawable/rowselector" 
      android:divider="@android:color/transparent" /> 
    </LinearLayout> 
    </HorizontalScrollView> 
</FrameLayout> 

rowselector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="true" 
android:drawable="@drawable/select_button_selectable" /> 
<!-- focused --> 

<item android:state_focused="true" android:state_pressed="true" 
android:drawable="@drawable/select_button_selectable" /> 
<!-- focused and pressed--> 

<item android:state_pressed="true" 
android:drawable="@drawable/select_button_selected" /> 
<!-- pressed --> 

<item android:drawable="@drawable/select_button_selectable" /> 
<!-- default --> 
</selector> 

EDIT: L'image ressemble à ceci: Selected Rows but not Highlighted

Répondre

0

Vous devez ajouter state_selected dans votre sélecteur

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/select_button_selectable" android:state_focused="true" /> 
    <!-- focused --> 

    <item android:drawable="@drawable/select_button_selectable" android:state_focused="true" android:state_pressed="true" /> 
    <!-- focused and pressed--> 

    <item android:drawable="@drawable/select_button_selected" android:state_pressed="true" /> 
    <!-- pressed --> 

    <item android:drawable="@drawable/select_button_selected" android:state_selected="true" /> 
    <!-- selected (ADD THIS) --> 

    <item android:drawable="@drawable/select_button_selectable" /> 
    <!-- default --> 
</selector> 
+0

Ne fonctionne pas. Je me suis creusé la cervelle pendant des jours. – ThatGuyWhoRushesToTheFrontline

+0

Si cela ne fonctionne pas avec 'state_selected' dans xml, cela signifie que la déclaration sélectionnée n'est pas définie sur true. Vous pouvez essayer de définir manuellement 'setSelected (true)' dans Adapters 'onItemClickListener' – adnanyousafch

+0

Je pense que l'état_selected fonctionne mais l'application ne peut pas se rappeler que je l'ai pressée. J'utilise data_grid.setMultiChoiceModeListener (new AbsListView.MultiChoiceModeListener() – ThatGuyWhoRushesToTheFrontline