1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

getApplicationContext() in class

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von AquaBall, 02.05.2012.

  1. AquaBall, 02.05.2012 #1
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Ich habe eine Classe, die dynamisch ein ImageView erstellen soll.

    Der Code funktioniert in onCreate() einwandfrei,
    Code:
            LayoutParams lp = new LayoutParams(
                  LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            image= new ImageView(getApplicationContext());
            image.setImageResource(R.drawable.mypic);
            mainScreen.addView(image,  lp );
    
    In der classe, wo ich das aber brauchen würde, gibts aber keine getApplicationContext().
    Was mus ich hier stattdessen machen?

    (Außerdem würde ich einen Weg suchen, dass ich mein LinearLayout "mainScreen" nicht aus der Activity übergeben muss, sondern in der classe direkt erkennen kann. Für das ".addView")
     
  2. swordi, 02.05.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    musst deiner klasse eben den context geben. Wo ist das Problem?

    Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
     
  3. AquaBall, 02.05.2012 #3
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Hast ja eh recht. Ich wollte mir nur "schon wieder einen weiteren" Parameter ersparen.

    *schäm* Eigentlich irgendwie schizophren: erst alles private machen, und dann zu faul sein, Parameter zu übergeben. :o

    Aber vielleicht kannst du mir bei der 2. Frage helfen:
    Wie kann ich ein addView() machen, wenn ich nicht genau weiß, welches Layout dahinter liegt?

    Momentan behelfe ich mir mit einer ID:
    Code:
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/main"
    und 
    mainScreen=(LinearLayout) findViewById(R.id.main);
    mainScreen.addView(..)
    
    geht das besser?
    Was mach ich wenn's mal kein LinearLayout ist?
     
  4. Tom299, 03.05.2012 #4
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Du kannst auch direkt die View added und mußt nicht auf LinearLayout casten. Wenn du nichts damit machst außer addView dann brauchste den Cast nicht.

    Wenn du rausfinden willst, welches Layout es ist, dann kannst du bestimmt instanceof verwenden. Hab ich zwar noch nicht versucht, aber sollte klappen.

    Du könntest auch hingehen und das oberste Element immer als LinearLayout definieren, dann hättest du immer dein LinearLayout.
     

Diese Seite empfehlen