Android Wie bestimme ich den Dateinamen einer Bilddatei?

Pablo

Mitglied
Hallo!
Ich habe in einer programmierten App Bilder in dem res/drawable Ordner hinterlegt. Jetzt wollte ich den Dateinamen des Bildes auszulesen.
Das Bild wird über einen Imagebutton dargestellt und soll im Code über eine onClick Methode bestimmt werden.

Code:
Java:
public void btnBild(View v)
{

//??????????

}




XML:
<ImageButton
    android:id="@+id/ibtZelle_092"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="2dp"
    android:layout_marginBottom="2dp"
    android:layout_weight="1"
    android:background="@color/cWeiss"
    android:onClick="btnBild"
    android:src="@drawable/en1201a24_022"
    android:textAllCaps="false"
    android:textColor="@color/cSchwarz"
    android:textSize="15sp" />


Ich habe bereits einiges mit getResources() probiert - bis jetzt allerdings ohne Erfolg!
Hat jemand eine Idee, wie ich den Dateinamen (en1201a24_022) im Code vom angetippten Bild auslesen und in einen String umwandeln kann?
Vielen Dank!
Ciao Pablo
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Der Dateiname geht nie an den ImageButton. Kannst Du erläutern, was Du machen willst?

Generell könnte man noch tag zu einem beliebigen String setzen und dann später auslesen, aber noch fällt mir keinerlei Grund ein, wieso man später den Filenamen einer Ressource benötigt.
 

Pablo

Mitglied
Hallo Kneitzel!
Oh, das ist gut zu wissen, dass man den Dateinamen nicht direkt auslesen kann. Aber, wenn das mit einem Tag funktioniert wäre cool.
Der Dateiname ist wichtig, weil in ihm Informationen verschlüsselt werden, die ich im weiteren Verlauf benötige. Kannst du denn sagen, wie es mit einem tag funktioniert? Sagt mir gar nichts!
Danke und Ciao Pablo
 
K

kneitzel

Gast
Hallo Pablo,

Ich habe es nicht getestet, aber tag (getTag / setTag) ist in der android.view.View, wovon ImageButton indirekt abgeleitet ist. Daher sollte es wie folgt aussehen:

XML:
android:src="@drawable/en1201a24_022"
android:tag="en1201a24_022"
Java:
String file = (String)myImageButton.getTag();

Evtl. macht es noch etwas Sinn, da noch etwas den Typ zu prüfen und so. Nicht dass da an anderer Stelle auch das Tag gesetzt wird (So Du diesbezüglich keine Library eingebunden hast, sollte das aber unbenutzt sein. Aber generell kann man da halt alles reinsetzen....).

Was man aber bei diesem Ansatz erkennt und was mir nicht so wirklich gefällt ist diese doppelte Nennung im Code. Wenn Du da etwas editierst und es dann an einer Stelle veränderst, dann hast Du halt unter src eine andere Datei als unter tag. Oder auch schon die Chance auf Tippfehler ... Das ist also etwas, das mir nicht wirklich gefällt und wo ich gerne etwas besseres haben würde... Ist daher definitiv nicht mehr als ein Workaround um überhaupt Daten da zu haben....
 
X

Xyz1

Gast
Hallo, teste das mal...
Aufrufen: "java -jar imdex1.jar" (oder doppelklick) und eine zB jpg auswählen.
 

Anhänge

  • imdex1.jar
    698,1 KB · Aufrufe: 4
K

kneitzel

Gast
Es ging hier darum, dass in einem Android Projekt zur Compile-Zeit Ressourcen ausgewählt werden (Im Rahmen eines XML Files) und zur Laufzeit nicht nur die Ressource selbst sondern auch ihr Name von Interesse ist.

Und das hast Du in Deinem jar wie gelöst? Wenn man davon absieht, dass es sich um kein Android Projekt handelt, würde ich jetzt erst einmal vermuten, dass es mit dem Problem des TE nichts zu tun hat.

Was ich schon überlegt hatte:
a) Evtl. kann man den Loader beeinflussen, der das XML ausliest um dann die Ressource auch entsprechend anzugeben. Aber da habe ich in meinen Recherchen keinen Ansatz gefunden.
b) Die Ressourcen kann man ggf. generell nicht im XML setzen bzw. immer über tag statt über src. Dann hätte man im onCreate code, der die Ressource entsprechend setzt. Das ist aber dann auch etwas mehr Aufwand.

Daher würde mich weiterhin interessieren, was genau hier gemacht werden soll. (Evtl. ist das nur ein Folgeproblem von einem Design, das einfacher angepasst werden könnte...)
 

mrBrown

Super-Moderator
Mitarbeiter
Kommt drauf an, was schon nicht mehr "sittlich" sei...
Nebenbei, hier das VT Ergebnis: https://www.virustotal.com/gui/file...fad1003566b48fa2adc24c0809c5b9d81952b/details
Nicht (nur) wegen Viren, sondern weil niemand hier etwas mit dem ausführbaren Programm anfangen kann.
VirusTotal wird aber auch nichts melden, wenn ich dir jetzt ein Bösartiges Programm schicke...


Es beantwortet seine Frage, denke ich...
Ein ausführbares Programm, basierend auf Swing, wird sicherlich nicht helfen, den Namen der Grafik eines Buttons unter Android abzufragen.
 

mrBrown

Super-Moderator
Mitarbeiter
Zur Urspungsfrage: ich wage mal zu behaupten, dass der Weg sowieso der falsche ist. Sollte der Name des Bildes für die Login relevant sein, gehört das nicht in die View.

Beschreib doch mal, was du vor hast.
 
X

Xyz1

Gast
Ach so, es ging gar nicht um alle Metadaten einer Bilddatei? Dann hatte ich das falsch aufgefasst :(
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Android wie kann ich in einer xml nach bestimme item suchen (DOM) Android & Cross-Platform Mobile Apps 7
T Lesen / Schreiben einer Textdatei - SD-Karte Android & Cross-Platform Mobile Apps 42
OnDemand Allgemeine Fragen zu einer App Android & Cross-Platform Mobile Apps 4
I Foto mit einer bestimmten Auflösung aufnehmen und als Datei ablegen. Android & Cross-Platform Mobile Apps 5
Jose05 Wie kann man mit einer App Geld verdienen? Android & Cross-Platform Mobile Apps 6
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
M Activity einer anderen App mit result Android & Cross-Platform Mobile Apps 2
J Android Zugriff auf eine Datei, diese von einer anderen App erstellt wurde? Android & Cross-Platform Mobile Apps 11
Mo1234 Plattform in einer App. Bitte um Hilfe! Android & Cross-Platform Mobile Apps 8
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
B Falsche ausgabe einer Rechnung! Android & Cross-Platform Mobile Apps 8
M Android Dynamische SchriftGröße einer TextView Android & Cross-Platform Mobile Apps 3
J Android Suche in einer ListView Android & Cross-Platform Mobile Apps 3
G Android Daten in einer Datenbank speichern Android & Cross-Platform Mobile Apps 1
J Android button mithilfe einer Methode automatisch erstellen Android & Cross-Platform Mobile Apps 6
JavaWolf165 Android Fehler beim Speichern/Downloaden einer Datei Android & Cross-Platform Mobile Apps 2
S Android Probleme beim Verbinden mit einer HTTPS Seite Android & Cross-Platform Mobile Apps 4
C Android Diese Art von Werbung in einer App? Android & Cross-Platform Mobile Apps 1
? ständig ändernden Inhalten in einer App Android & Cross-Platform Mobile Apps 2
R Android Eine Website-frame in einer App Android & Cross-Platform Mobile Apps 4
H Android Aufrufen von "setContentView" in einer anderen Klasse Android & Cross-Platform Mobile Apps 3
S Die Erstellung einer eigenen App,Kosten? Android & Cross-Platform Mobile Apps 1
M Android Speichern einer .txt Datei im InternalStorage Android & Cross-Platform Mobile Apps 2
B Fragen zum Speichern einer Datei auf dem Gerät? Android & Cross-Platform Mobile Apps 7
C Auf Play Store verlinken - Code in einer Extraklasse Android & Cross-Platform Mobile Apps 1
G Thread in einer Service erstellen Android & Cross-Platform Mobile Apps 0
B Android Spieler Steuerung auf einer Map mit Berge? Android & Cross-Platform Mobile Apps 7
M Android Quellcode einer Website Android & Cross-Platform Mobile Apps 7
K Löschen einer Tabelle bei PlayStore update Android & Cross-Platform Mobile Apps 2
H Veröffentlichung einer Bezahl-App Android & Cross-Platform Mobile Apps 5
Robat Android ConcurrentModificationException während einer for Schleife Android & Cross-Platform Mobile Apps 15
D Android EditText und TextView haben unterschiedliche größen innerhalb einer TableRow Android & Cross-Platform Mobile Apps 18
M Umlaute im Quellcode einer Website richtig darstellen Android & Cross-Platform Mobile Apps 4
M Quellcode einer Website auslesen Android & Cross-Platform Mobile Apps 5
T Android platzsparende Codierung verschlüsselter Texte in einer URI Android & Cross-Platform Mobile Apps 8
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
G Einbinden einer Bibliothek's App Android & Cross-Platform Mobile Apps 2
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
A Fehler beim Starten eines Intents - alles in einer Klasse funktioniert... Android & Cross-Platform Mobile Apps 4
A Kann nicht in TextView einer anderen Klasse schreiben - wieso? Android & Cross-Platform Mobile Apps 9
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
T Android Multiple SDK-Support in einer Apk Android & Cross-Platform Mobile Apps 5
R Android Unterschiedliche Versionen von Android in einer App Android & Cross-Platform Mobile Apps 7
D Mehrere Kopien von einer Form Android & Cross-Platform Mobile Apps 7
M Wie in einer anderen "nicht canvas" klasse zeichne Android & Cross-Platform Mobile Apps 5
S Problem mit Einbindung einer externer Bibliothek Android & Cross-Platform Mobile Apps 2
S Variable Anzahl von Bytes aus einer Datei lesen Android & Cross-Platform Mobile Apps 2
P Erstellen einer Jar-File Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben