Frage

Okay, ich weiß, das hört sich vielleicht wie jedes andere Problem im Zusammenhang mit den ListView- und ListActivity-Problemen an, aber das ist nicht der Fall. Ich werde verrückt werden, da ich in der letzten Woche immer wieder alle Beiträge durchsucht habe, um eine Lösung dafür zu finden, die helfen könnte Mich.Schon versucht ListView-Elementhintergrund über benutzerdefinierten Selektor Und GetView vs.BindView in einem benutzerdefinierten CursorAdapter? alle anderen möglichen Blogseiten...

Okay, das Problem, meine ListView für 1 lässt keine Auswahl-/Feuerereignisse zu und 2.ändert die Zeilenhervorhebung nicht, wenn auf ein Element geklickt wird.Ich habe einen Standard TestActivity verlängern ListActivity und ich habe einen Custom implementiert TestCursorAdapter extends SimpleCursorAdapter

Jetzt auf der XML-Seite der Dinge, die ich habe test_list_view.xml und der zweite row_view.xml Nun habe ich die oben genannten Antworten befolgt und umgesetzt selector als row_selector.xml.Das Problem besteht jedoch zum einen darin, dass die Zeilen keine Klick- oder Fokusereignisse akzeptieren.Ich habe einen einfachen Toast implementiert, um anzuzeigen, ob etwas passiert

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

Teil von 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"/>

Teil von selector.xml (im Wesentlichen kopiert und eingefügt von einem der oben genannten Links)

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

Ich habe alle mir bekannten Optionen befolgt und immer noch nichts. Der einzige große Unterschied besteht darin, dass ich keine Jungs benutze getView Stattdessen verwende ich bindView.

Jede Hilfe wird sehr geschätzt.

Dank im Voraus.

Sanj

War es hilfreich?

Lösung

Ich schlage vor, dass Sie das entfernen android:focusable="true" von dem ListView.

Darüber hinaus können Sie die verwenden selector als Hintergrundfarbe der Elemente, die im angezeigt werden ListView.Stellen Sie außerdem sicher, dass diese Elemente nicht aufgerufen werden onClick oder onTouch oder so ähnlich, und lass das ListView Behandeln Sie die Klickereignisse.

ich hoffe das hilft

BEARBEITEN:

für Ihr Problem bei der Auswahl des Artikels

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

Andere Tipps

Ich folge Raukodraugs Vorschlag und BeitragListView OnItemClickListener reagiert nicht?

Eine weitere Tatsache, wie bereits erwähnt bindView Methode, die ich verwendet habe

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

Das Klicken auf das Element funktioniert nur, wenn Sie auf den gelb markierten Bereich klicken und den ImageView.Ich sollte das herausfinden können, danke,

enter image description here

Bearbeitet

Oh *%#$ Es wurde gelöst, die RelativeLayouts mussten festgelegt werden Add State from Children = true;

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top