2013-12-12 10 views
8

Próbuję zadzwonić getActivity() w OnItemClickListener:Android: Jak wywołać metodę getActivity() w funkcji OnItemClickListener()?

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

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

     }); 

}

we fragmencie, klasa jest tworzony jako:

ViewTest editTest = new ViewTest(this); 

Ale pojawia się błąd, że nie można naprawić:

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

Jak mogę połączyć się z getActivity? wewnątrz onItemClick()? Dzięki.

+0

dodaj swój pełny kod klasy, jeśli to możliwe ... używasz w Fragment? –

+0

Czy jest to działanie lub fragment? – rahulritesh

+0

jego w klasie, która jest instancjonowana w fragmencie – user2212461

Odpowiedz

25

Możesz używać tylko getActivity wewnątrz klasy Fragment lub przedłużyć ją. Jeśli onItemClickListener jest w Activity użytku MainActivity.this

+0

Świetne rozwiązanie! Co dokładnie daje mi MainActivity.this po wywołaniu z Listener wewnątrz klasy MainActivity, bieżące wystąpienie MainActivity? – pepper42

0

Korzystanie Class_name.this lub zdefiniować zmienną Context. a następnie wezwać makeResultsbarVisible() za pomocą Context zmienną

podobnych,

Context c = this; 

c.makeResultsbarVisible(); 
Powiązane problemy