R.id mit übergebener Variable befüllen

  • hallo,
    meine name ist Tino und ich bin neu hier und bastle gerade etwas an einer kleinen listen app..


    ich habe eine liste mit ländern, nach dem klick auf das land geht die neue activity auf und stellt alle untergebiete des landes dar...
    fest reingeschrieben geht alles so gut:


    Code
    listView=(ListView)findViewById(R.id.listFelsen);
    listItem = getResources().getStringArray(R.array.array_Spanien);


    ich übergebe der activity ja das land mit als string

    Code
    if(getIntent().hasExtra("id") == true) {
                land = getIntent().getExtras().getString("id");
    }

    jetzt halt recht plump...

    Code
    if (land.equals("Spanien")) {
                listItem = getResources().getStringArray(R.array.array_Spanien);
    }
    else if (land.equals("Usa")) { {
                listItem = getResources().getStringArray(R.array.array_Usa);
    }
    
    
    ..... usw

    da es viele sind möchte ich ja nur :
    listItem = getResources().getStringArray(R.array.land);
    habe es so versucht: String test= "R.array."+land; dann auf int gecasted, sowas eben....
    nichts geht, die ganzen einträge zu den ländern stehen in einer xml-datei, wie gesagt fest reingeschrieben geht alles.
    danke für antworten
    Tino

  • Hi,
    das ist eigentlich so nicht vorgesehen, aber trotzdem möglich. Das Zauberwort heißt Reflection.
    Mehr dazu unter https://ux5.de/reflect


    Aber nicht vergessen, den ProGuard für die Klasse zu deaktivieren. Wenn die Klasse geshrinkt wird kommt bei der Reflection API auch nichts brauchbares mehr raus.


    Gruß
    Michael

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!