Listview Android non consente il funzionamento del selettore né consente di selezionare Selezioni
-
14-11-2019 - |
Domanda
Okay so che potrebbe sembrare altre questioni riguardanti i problemi di listview e di elenco, ma questo non lo è, vado pazzo come ho passato nella settimana passata e sulla ricerca di tutti i post per trovare qualsiasi soluzione a questo Questo può aiutarmi. Già provato a listview elemento background tramite selettore personalizzato e getview vs. BindView in un cursoradacchetto personalizzato? ogni altro possibile siti di blog ...
Okay il problema, il mio elenco per uno 1 non consente gli eventi di selezione / antincendio e 2. non cambierà l'evidenziazione della riga quando viene cliccato un elemento. Ho un TestActivity
TagCoDetagCoDetagCoDetagCode ListActivity
standard e ho implementato un TestCursorAdapter extends SimpleCursorAdapter
personalizzato
Ora nel lato XML delle cose che ho su test_list_view.xml
e Second One row_view.xml
Ora ho seguito le risposte di cui sopra risposte e implementano selector
come row_selector.xml
. Ma il problema è per una le righe non accetta alcun clic o eventi di messa a fuoco. Ho implementato un pane tostato di base per indicare se c'è qualcosa di accadere
@Override
protected void onListItemClick(ListView l, View v , int postion, long idontnow){
Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_SHORT ).show();
}
.
parte di test_list_view.xml
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:cacheColorHint="#00000000"
android:focusable="true"
android:listSelector="@color/row_selector"
android:background="@color/Transparent"/>
.
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:cacheColorHint="#00000000"
android:focusable="true"
android:listSelector="@color/row_selector"
android:background="@color/Transparent"/>
parte del selettore.xml (fondamentalmente copiato e incollato da uno dei link sopra menzionati)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false"
android:drawable="@color/Transparent" />
<item
android:state_focused="true"
android:state_enabled="false"
android:state_pressed="true"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_enabled="false"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="true"
android:drawable="@color/green" />
<item
android:state_selected="true"
android:drawable="@color/blue" />
<item
android:drawable="@color/Transparent" />
</selector>
.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false"
android:drawable="@color/Transparent" />
<item
android:state_focused="true"
android:state_enabled="false"
android:state_pressed="true"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_enabled="false"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="true"
android:drawable="@color/green" />
<item
android:state_selected="true"
android:drawable="@color/blue" />
<item
android:drawable="@color/Transparent" />
</selector>
Ho seguito tutte le opzioni di cui sono consapevole e ancora niente. L'unica grande differenza è GUYS Non sto usando getView
invece sto usando bindView
.
Qualsiasi aiuto dei ragazzi sarà molto apprezzato.
Grazie in anticipo.
sanj
Soluzione
I suggest that you remove the android:focusable="true"
from the ListView
.
Additionally, you can use the selector
as the background color of the items that are displayed in the ListView
. Also be sure that those elements are not calling onClick
or onTouch
or something like that, and let the ListView
handle the click events.
I hope this helps
EDIT:
for your problem with selecting the item use
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
yourMethod();
}
});
Altri suggerimenti
following raukodraug's suggestion and post ListView OnItemClickListener Not Responding?
Another fact as mentioned use bindView
method, I used
view.setClickable(true);
view.setFocusable(true);
the item click kind of works, only if you click on the region marked highlighted in Yellow and the ImageView
. I should be able to figure this out thanks,
Edited
Oh *%#$ Solved it, Needed to set the RelativeLayouts Add State from Children = true;