Ho un ListFragment
associato a un semplice ArrayAdapter
. Il ListView contiene un elenco di elementi controllabili e la sua disposizione di XML è la seguente:Come avvio correttamente una barra di azioni contestuali a selezione multipla per ListFragment (con problemi)
<ListView android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:layout_marginLeft="2mm"
android:layout_marginRight="2mm"
android:drawSelectorOnTop="false"
android:longClickable="true"
android:choiceMode="multipleChoiceModal"/>
Come potete vedere, ho impostato le long-clickable
e choicemode
attributi nel layout XML.
ho impostato l'ascoltatori appropriate in onViewCreated
callback s' il ListFragment
:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ListView list_view = getListView();
list_view.setMultiChoiceModeListener(this);
list_view.setOnItemLongClickListener(this);
}
passo nel this
come parametro ascoltatore perché il mio ListFragment
ha inoltre implementato i callback di quegli ascoltatori.
Questa è la richiamata sto avendo problemi con:
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id
{
activity.startActionMode(this);
return true;
}
In primo luogo, che onItemLongClick
non è mai chiamato. Tuttavia, la barra delle azioni contestuali (CAB) si avvia e funziona perfettamente quando si fa clic a lungo su un elemento della lista!
In effetti, il CAB avvia correttamente senza questa richiamata! La mia callback utilizza activity.startActionMode(this)
, che mostra il CAB, ma non facilita il controllo degli elementi nell'elenco (l'ho provato altrove).
Come gestisco in modo programmatico i clic lunghi per avviare il CAB e facilitare la verifica delle voci dell'elenco?
Sto utilizzando i metodi presentati negli argomenti Android Developer Guide (hanno utilizzato suLongClickListener, che ho anche provato senza alcun risultato), ma non sembra funzionare.