Question

D'accord, je sais que cela peut ressembler à n'importe quel autre problème concernant les problèmes ListView et ListActivity, mais ce n'est pas le cas, je vais devenir fou comme je l'ai fait la semaine dernière et j'ai continué à chercher dans tous les messages pour trouver une solution à cela qui pourrait aider. moi.Déjà essayé Arrière-plan de l'élément ListView via un sélecteur personnalisé et GetView contre.BindView dans un CursorAdapter personnalisé ? tous les autres sites de blogs possibles...

D'accord, le problème, ma listView pour un 1 n'autorisera pas la sélection/déclenchement des événements et 2.ne modifiera pas la mise en surbrillance de la ligne lorsqu'un élément est cliqué.j'ai une norme TestActivity extension ListActivity et j'ai implémenté un Custom TestCursorAdapter extends SimpleCursorAdapter

Maintenant, du côté XML des choses que j'ai test_list_view.xml et le deuxième row_view.xml Maintenant, j'ai suivi les réponses mentionnées ci-dessus et j'ai mis en œuvre selector comme row_selector.xml.Mais le problème est que pour l’une des lignes, n’accepte aucun événement de clic ou de focus.J'ai implémenté un toast de base pour indiquer s'il se passe quelque chose

@Override
protected void onListItemClick(ListView l, View v , int postion, long idontnow){
    Toast.makeText(getApplicationContext(), "Hello World",  Toast.LENGTH_SHORT ).show();
}

partie de 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"/>

partie de selector.xml (essentiellement copié et collé à partir de l'un des liens mentionnés ci-dessus)

<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>

J'ai suivi toutes les options dont je suis conscient et toujours rien. La seule différence majeure, ce sont les gars que je n'utilise pas getView à la place, j'utilise bindView.

Toute aide les gars sera très appréciée.

Merci d'avance.

Sanj

Était-ce utile?

La solution

Je vous suggère de supprimer le android:focusable="true" du ListView.

De plus, vous pouvez utiliser le selector comme couleur d'arrière-plan des éléments affichés dans le ListView.Assurez-vous également que ces éléments n'appellent pas onClick ou onTouch ou quelque chose comme ça, et laissez le ListView gérer les événements de clic.

J'espère que ça aide

MODIFIER:

pour votre problème de sélection de l'article, utilisez

lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            yourMethod();
        }
    });

Autres conseils

suite à la suggestion et au message de raukodraugListView OnItemClickListener ne répond pas ?

Un autre fait mentionné bindView méthode, j'ai utilisé

view.setClickable(true);
view.setFocusable(true); 

le type de clic sur l'élément fonctionne, uniquement si vous cliquez sur la région marquée en surbrillance en jaune et le ImageView.Je devrais pouvoir comprendre ça merci,

enter image description here

Édité

Oh *%#$ Résolu, nécessaire pour définir les RelativeLayouts Add State from Children = true;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top