1. Nimm jetzt an unserem AGM - Gewinnspiel teil - Informationen zum M1, A2 und A8 findest Du hier, hier und hier!
  1. krackmoe, 08.03.2011 #1
    krackmoe

    krackmoe Threadstarter Junior Mitglied

    Könnte mir jemand den Unterschied erklären, ich versteh das nicht wenn ich mir das durchlese...

    Code:
    Button startButton = (Button)findViewById(R.id.startButton);
            
            startButton.setOnClickListener(new View.OnClickListener() {			
    			@Override
    			public void onClick(View v) {
    				Intent intent = new Intent(menu.this, GameActivity.class);
    				startActivity(intent);				
    			}
    		});
    
    Warum muss ich bei new Intent(...) menu.this angeben?
    Und nicht v.getContext()?
     
  2. DieGoldeneMitte, 08.03.2011 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Der Intent braucht einen "Context" als ersten Parameter und keinen OnClickListener, was "this" in deinem Beispiel wäre.

    Das es manchmal doch geht, liegt dann daran, dass die Activity (die ein Context ist) von OnClickListener geerbt hat.

    "menu.this" geht, wenn es in Deinem Scope eine Variable "menu" gibt, die von Context erbt. Vermutlich handlet sich dabei in deinem Fall um die Activity :)
     
    Zuletzt bearbeitet: 08.03.2011
  3. krackmoe, 08.03.2011 #3
    krackmoe

    krackmoe Threadstarter Junior Mitglied

    Mh...

    Wenn ich aber v.getContext() ihm übergebe, dann bekommt er ja genauso einen Context? Aber dann bekommt er den Context vom OnClickListener, mit dem er dann nichts anzufangen weiß, richtig?

    Wo seh ich, das menu von Context erbt?
    Weil menu meine Klasse ist die Activity extended und Activity von Context erbt, meinst du das?
     
  4. Unicate, 09.03.2011 #4
    Unicate

    Unicate Android-Experte

    Ja, das meint er. Hier siehst du das Activity von Context erbt (siehe Klassenpfade oben)
     
  5. krackmoe, 09.03.2011 #5
    krackmoe

    krackmoe Threadstarter Junior Mitglied

    Ok super danke.

    Nur wie weiß ich, welchen Context ich gerade brauche?
    Wann übergeb ich z.B. den Context vom OnClickListener!?
     
  6. Unicate, 09.03.2011 #6
    Unicate

    Unicate Android-Experte

    Du brauchst immer den Context der Activity welche gerade aktiv ist.

    Bei Services gibt es ja nur einen, nämlich den des Services selbst.
     
  7. Unicate, 09.03.2011 #7
    Unicate

    Unicate Android-Experte

    Also wenn das Stück Code in einer Activity namens MyActivity ist, brauchst du den Context MyActivity.this.getContext() (Wenn du nicht gerade ein interface implementierst reicht auch nur "getContext()"
     
  8. krackmoe, 09.03.2011 #8
    krackmoe

    krackmoe Threadstarter Junior Mitglied

    Ok d.h. es ist egal ob hier MyActivity.this übergebe oder MyActivity.this.getContext(), da MyActivity eh von Context erbt, richtig?

    Ja und wann würde der vom OnClickListener benötigt werden!?

    Danke dir auf jeden Fall ;)
     
  9. Unicate, 09.03.2011 #9
    Unicate

    Unicate Android-Experte

    Ja, das ist richtig.

    Wann man den Context benötigt kommt immer darauf an, was du in deinem implementierten Interface machen möchtest.

    In deinem Fall hier brauchst du Ihn um ein Intent zu erstellen.
     

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. android intent beispiel