Android Wie bestimme ich den Dateinamen einer Bilddatei?

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

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

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

kneitzel

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...)
 
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.
 
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.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben