Ich habe eine ListView
, die ich möchte, dass das angeklickte Element eine Hintergrundfarbe hat, um anzuzeigen, welches Element gerade ausgewählt ist. Ich habe erreicht, dass durch eine Auswahlfeld AngabelistView-Elemente, die nach dem Klicken markiert bleiben sollen
<ListView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/sub_arguments_listView"
android:layout_weight="1"
android:listSelector="@drawable/list_selector"
android:choiceMode="singleChoice"
android:clickable="true"/>
Und die list_selector.xml ist:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/seperator_color" />
<item android:state_focused="true" android:drawable="@color/seperator_color" />
<item android:state_activated="true" android:drawable="@color/seperator_color" />
<item android:state_selected="true" android:drawable="@color/seperator_color" />
<item android:state_active="true" android:drawable="@color/seperator_color" />
<item android:drawable="@color/seperator_color" />
</selector>
Ich habe ein hinzugefügt ListView.onItemClickListener()
:
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
String text ="sometext";
((TextView)mMainView.findViewById(R.id.sub_argument_text)).setText(text);
}
Dies funktioniert gut und wie erwartet, solange die Variable "text" einen kurzen Inhalt hat. Das Problem, das ich habe, ist, wenn der Inhalt der Variable "Text" ein langer Text ist, dann ist die TextView
in Ordnung, aber das ausgewählte Element in der ListView
wird aus irgendeinem Grund den Hintergrund (zurück zu transparent) verlieren (meine Vermutung ist die Fokus ist verloren). Wenn ich erneut auf denselben Gegenstand klicke, bleibt der Hintergrund und der Gegenstand wird immer noch hervorgehoben. Bitte beachten Sie auch, dass ich zwei Android-Geräte:
- A Eibisch 5,0, die ein schnelles Gerät ist. Und ich sehe das Problem nicht.
- Die zweite ist ein 4,2 und relativ langsames Gerät, das dieses Problem zeigt.
Was fehlt mir? Wie kann ich das angeklickte Element in der listView so lange hervorgehoben halten, bis ein anderes Objekt angeklickt wird?
Dank
machen Listenansicht die Artikel clikable in der Adapterklasse Android: focusable = "f als " android: focusableInTouchMode =" false "android: klickbar =" false " –
Ok. Ich habe das klickbare Attribut entfernt, habe aber immer noch das gleiche Problem? – c4207c
Sie nicht das klickbare aus Listview entfernen. Ich spreche über Adapterklassenansichten –