___ answer17294720 ___

Meiner Meinung nach sollte es möglich sein den Weg zu beschreiben, aber leider nicht.

Was ich bisher gefunden habe, ist, dass Sie eine XML-Ressource verwenden müssen, die beschreibt, wie der Hintergrund aussehen soll, wenn der 'Status' des Elements 'aktiviert' ist.

Erstellen Sie im Verzeichnis 'res / drawable /' eine Datei namens 'list_item_background_activated.xml'.

Darin definieren Sie ein Wurzelelement vom Typ Selektor:

%Vor%

Nun sollten Sie die zugehörige Ressource (die Ressource, die definiert, wie ListItem aussieht) ändern, um auf diese ziehbare Datei zu verweisen:

%Vor%     
___ tag123androidlayout ___ Ein Layout definiert die visuelle Struktur für eine Benutzeroberfläche, z. B. die Benutzeroberfläche für ein Aktivitäts-, Fragment- oder App-Widget. ___ qstntxt ___

Ich habe die Anleitung zum Erstellen kontextabhängiger Aktionsmenüs der offiziellen Android-Seite verfolgt. Wenn ich einen der folgenden ListView-Elemente länger drücke, wird ausgewählt, aber der angezeigte Code wird nicht visuell angezeigt. Ich verwende das Holo Light Theme, und ich erwarte, dass die Hintergrundfarbe jedes ausgewählten Elements in meiner ListView in einen blauen Farbton wechselt.

Ist das normales Verhalten?

Ich habe versucht, %code% zu testen und nicht einmal eine einzelne Zeile zu markieren.

Die Verwendung von %code% scheint die zuletzt ausgewählte Zeile zu markieren, hebt jedoch nicht die anderen ausgewählten Zeilen hervor.

Habe ich etwas falsch gemacht, oder muss ich den Hintergrund manuell ändern? Wenn ja, wie?

Ich habe auch %code% ausprobiert, was ein echter Selektor ist, der Elemente für verschiedene Zustände enthält. Leider gilt dies immer noch nur für den zuletzt ausgewählten ListView-Eintrag.

%Vor%

Danke!

    
___ tag123androidwidget ___ Dies bezieht sich entweder auf Widgets für den Startbildschirm oder auf allgemeine Benutzeroberflächenelemente, die auf einem Android-Anwendungsbildschirm verwendet werden. ___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ answer23388244 ___

Ich habe gerade den kontextuellen Aktionsmodus implementiert und hatte das gleiche Problem, das Sie hatten / hatten. Ich dachte auch, dass das Standardverhalten wäre, dass jede ausgewählte Zeile auf irgendeine Weise hervorgehoben wäre, aber nein.

Der einfachste Weg für mich, den gewünschten Effekt zu erzielen, bestand darin, die Listeneintragsressource, die ich für meine ListActivity verwendete, zu ändern.

Ich benutze einen ArrayAdapter, so dass die Wahl für mich im Konstruktor des Adapters getroffen wird:

%Vor%

Der letzte Parameter ist die Ressourcen-ID für eine Layout-Datei, die der Adapter für die Erstellung neuer Ansichten (Listenelemente) in der Listenansicht verwendet.

Ich hatte den gewählt, den ich für den grundlegendsten hielt. Durch Ändern in:

%Vor%

Ich habe den gewünschten Effekt, die im kontextuellen Aktionsmodus ausgewählten Zeilen bleiben jetzt hervorgehoben.

Es gibt auch ein paar andere Ressourcen-IDs, die in android.R.layout definiert sind, aus denen Sie auswählen können, um ein ähnliches, aber anderes Ergebnis zu erhalten: Ссылка , simple_list_item_activated_1 hat es einfach für mich gemacht.

Nicht sicher, ob

%Vor%

verbirgt einen Adapter und wenn ja, einen Array-Adapter, aber falls ja, sollte dies helfen.

Sonst könnte man die vordefinierten Ressourcen an einer anderen Stelle verwenden oder den etwas längeren Weg nehmen und Selektoren definieren, wie Brabbeldas es vorschlägt

    
___ ___ qstnhdr Listview-Elemente werden nicht visuell „markiert“, wenn während kontextuellen Action-Modus ausgewählt ___

8

Ich habe die Anleitung zum Erstellen kontextabhängiger Aktionsmenüs der offiziellen Android-Seite verfolgt. Wenn ich einen der folgenden ListView-Elemente länger drücke, wird ausgewählt, aber der angezeigte Code wird nicht visuell angezeigt. Ich verwende das Holo Light Theme, und ich erwarte, dass die Hintergrundfarbe jedes ausgewählten Elements in meiner ListView in einen blauen Farbton wechselt.

Ist das normales Verhalten?

Ich habe versucht, listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); zu testen und nicht einmal eine einzelne Zeile zu markieren.

Die Verwendung von listView.setSelector(android.R.color.holo_blue_light); scheint die zuletzt ausgewählte Zeile zu markieren, hebt jedoch nicht die anderen ausgewählten Zeilen hervor.

Habe ich etwas falsch gemacht, oder muss ich den Hintergrund manuell ändern? Wenn ja, wie?

Ich habe auch listView.setSelector(android.R.drawable.list_selector_background); ausprobiert, was ein echter Selektor ist, der Elemente für verschiedene Zustände enthält. Leider gilt dies immer noch nur für den zuletzt ausgewählten ListView-Eintrag.

%Vor%

Danke!

    
Gleasonator 04.04.2013, 21:40
quelle

2 Antworten

2

Meiner Meinung nach sollte es möglich sein den Weg zu beschreiben, aber leider nicht.

Was ich bisher gefunden habe, ist, dass Sie eine XML-Ressource verwenden müssen, die beschreibt, wie der Hintergrund aussehen soll, wenn der 'Status' des Elements 'aktiviert' ist.

Erstellen Sie im Verzeichnis 'res / drawable /' eine Datei namens 'list_item_background_activated.xml'.

Darin definieren Sie ein Wurzelelement vom Typ Selektor:

%Vor%

Nun sollten Sie die zugehörige Ressource (die Ressource, die definiert, wie ListItem aussieht) ändern, um auf diese ziehbare Datei zu verweisen:

%Vor%     
Brabbeldas 25.06.2013 10:18
quelle
1

Ich habe gerade den kontextuellen Aktionsmodus implementiert und hatte das gleiche Problem, das Sie hatten / hatten. Ich dachte auch, dass das Standardverhalten wäre, dass jede ausgewählte Zeile auf irgendeine Weise hervorgehoben wäre, aber nein.

Der einfachste Weg für mich, den gewünschten Effekt zu erzielen, bestand darin, die Listeneintragsressource, die ich für meine ListActivity verwendete, zu ändern.

Ich benutze einen ArrayAdapter, so dass die Wahl für mich im Konstruktor des Adapters getroffen wird:

%Vor%

Der letzte Parameter ist die Ressourcen-ID für eine Layout-Datei, die der Adapter für die Erstellung neuer Ansichten (Listenelemente) in der Listenansicht verwendet.

Ich hatte den gewählt, den ich für den grundlegendsten hielt. Durch Ändern in:

%Vor%

Ich habe den gewünschten Effekt, die im kontextuellen Aktionsmodus ausgewählten Zeilen bleiben jetzt hervorgehoben.

Es gibt auch ein paar andere Ressourcen-IDs, die in android.R.layout definiert sind, aus denen Sie auswählen können, um ein ähnliches, aber anderes Ergebnis zu erhalten: Ссылка , simple_list_item_activated_1 hat es einfach für mich gemacht.

Nicht sicher, ob

%Vor%

verbirgt einen Adapter und wenn ja, einen Array-Adapter, aber falls ja, sollte dies helfen.

Sonst könnte man die vordefinierten Ressourcen an einer anderen Stelle verwenden oder den etwas längeren Weg nehmen und Selektoren definieren, wie Brabbeldas es vorschlägt

    
Klepto 30.04.2014 12:34
quelle