2013-12-12 14 views
8

Ich versuche getActivity() in den OnItemClickListener zu nennen:Android: Wie GetActivity() in OnItemClickListener() aufgerufen wird?

class ViewTest{ //called in a fragment 
setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int p, long i) { 
       ((MainActivity) getActivity()).makeResultsbarVisible(); 
... 
      } 

     }); 

}

Im Fragmente wird die Klasse instanziiert wie:

ViewTest editTest = new ViewTest(this); 

Aber ich erhalte eine Fehlermeldung, dass ich kann nicht behoben werden:

The method getActivity() is undefined for the type new AdapterView.OnItemClickListener(){} 

Wie kann ich getActivity aufrufen Inside onItemClick()? Vielen Dank.

+0

Posten Sie Ihren vollständigen Klassencode, wenn möglich ... verwenden Sie in Fragmente? –

+0

Ist das eine Aktivität oder ein Fragment? – rahulritesh

+0

in einer Klasse, die in einem Fragment instanziiert wird – user2212461

Antwort

25

Sie können getActivity nur innerhalb einer Fragment Klasse oder einer erweitern. Wenn Ihr onItemClickListener in einer Activity Verwendung ist MainActivity.this

+0

Große Lösung! Was genau gibt mir MainActivity.this beim Aufruf von Listener innerhalb MainActivity Klasse, aktuelle Instanz von MainActivity ?? – pepper42

0

Verwenden Class_name.this oder definieren eine Context Variable. und rufen Sie dann Ihre makeResultsbarVisible() unter Verwendung Context Variable,

Wie,

Context c = this; 

c.makeResultsbarVisible();