R.id.* mit Variable verbinden?

  • 7 Antworten
  • Letztes Antwortdatum
F

Foffa

Neues Mitglied
0
Hallo! Bin neu hier im Forum und hoffe dass ich hier ein paar Antworten zu Fragen zur App-Entwicklung finde :D

Ich komm auch gleiche zu meiner ersten Frage^^
Ist es möglich R.id.* mit einer Variable zu verbinden? Wenn zum Beispiel die id R.id.test_1 wären, könnte man etwas in der Art wie

int nr = 1;
R.id.test_nr;

verwenden? So wie ich es eben verwendet habe funktioniert es auf jeden fall nicht :/

Ich hoffe ich krieg ein paar Antworten :D Danke schonmal
lg Foffa
 
Sicher doch. In res/values/ eine Datei irgendwas.xml anlegen und so bearbeiten:
Code:
<?xml version="1.0" encoding="utf-8"?>
 <[URL="http://developer.android.com/guide/topics/resources/more-resources.html#integer-resources-element"]resources[/URL]>
     <[URL="http://developer.android.com/guide/topics/resources/more-resources.html#integer-element"]integer[/URL] name="test_nr">[I]1[/I]</integer>
 </resources>
Im Code dann über R.integer.test_nr ansprechen.

Du kannst auch gegebenenfalls eine andere Version der Datei in values-fr, values-land oder values-v11 platzieren um in Abhändigkeit von locale, screen orientation oder sdk version andere Werte zu bekommen.
 
Danke für deine Antwort :)
Allerdings versteh ich immernoch nicht so ganz wie ich das verwende :/
Am besten erkläre ich mal wie ich es verwenden möchte.

Ich will eine unbekannte Zahl von ImageViews aus der xml datei einlesen. Deren id ist z.B v_1 oder v_2.


int nr = 1;
ImageView[] view = new ImageView[100];
while (R.id.v_nr > 0)
{
view[nr] = (ImageView)findViewById(R.id.v_nr);
nr++;
}

Ich habe gehofft, dass es so oder so ähnlich geht^^
Ich weiß nicht ob deiner Antwort mir da wirklich weiterhilft... Wenn ja wäre es nett wenn du es noch ein bisschen genauer erklären könntest, bin noch ziemlicher Neuling in der App Entwicklung :)
 
Ach so meinst du das. Nein, dann hatte ich dich falsch verstanden.

Ich glaube der Aufbau deines Layouts ist nicht ganz optimal. Wenn du mit einer unbekannten Anzahl Bilder arbeiten möchstest, dann machen einzelne ImageViews wahrscheinlich nicht viel Sinn.

Wofür soll die Sache denn dienen?
 
Es war eigentlich dafür da um bei einem Spiel bei jedem Level die Hindernisse rauszukriegen. Habs jetzt aber auch ohne die Id variable zu machen geschafft :)

Aber ich hätte noch eine Frage und will keinen neuen Thread dafür eröffnen, vielleicht weißt du ja weiter ;)

Kann man in der xml Datei Width, Height und die Margins auch in % der Bildschrimbreite/länge festlegen? Wenn man dp verwendet sieht die Oberfläche auf jedem Handy anders aus :/
 
Hey,

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    [B]android:weightSum="100" [/B]>

    <LinearLayout
        android:layout_width="match_parent"
        [B]android:layout_height="0dp"
          android:layout_weight="20"[/B]
        android:orientation="vertical" >

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        [B]android:layout_height="0dp"
          android:layout_weight="80"[/B]
        android:orientation="vertical" >

    </LinearLayout>
- weightSum auf das HauptLayout setzen -> 100 für 100%
- auf alle untere Views/Layouts layout_weight -> auf die %-Zahl die du brauchst setzen, dabei beachten das layout_height 0 sein soll damit layout_weight überhaupt aktiv wird // bzw bei width das layout_width auf 0 setzten

MfG
 
Oder du benutzt sp dann ist alles Verhältnismäsig gleich groß bei verschiedenen handys

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Gibt es so etwas auch für RelativeLayouts?

sp macht bei mir keinen Unterschied zu dp :/
 
Zurück
Oben Unten