2012-09-26 13 views
22

Co oznacza getActivity()? Widziałem gdzieś, napisali MainActivity.this.startActionMode(mActionModeCallback) zamiast getActivity(). czy ktoś mógłby wyjaśnić, co oznaczają te dwie linie?Co oznacza getActivity()?

someView.setOnLongClickListener(new View.OnLongClickListener() { 
     // Called when the user long-clicks on someView 
     public boolean onLongClick(View view) { 
      if (mActionMode != null) { 
       return false; 
      } 

      // Start the CAB using the ActionMode.Callback defined above 
      mActionMode = getActivity().startActionMode(mActionModeCallback); 
      view.setSelected(true); 
      return true; 
     } 
    }); 
+1

Najprawdopodobniej "getActivity()" to metoda zdefiniowana przez użytkownika, a nie interfejs API systemu Android. Czy możesz dodać więcej kodu? W szczególności chciałbym wiedzieć, czy jest to klasa, która rozszerza Activty lub coś innego. –

+0

Po użyciu fragmentów jest to tylko sposób uzyskania kontekstu –

Odpowiedz

46

Dwa prawdopodobnymi definicje:

+1

dzięki! i czy mógłbyś wyjaśnić, co oznacza ta linia ** MainActivity.this **? – zoey

+4

dla twojego kodu w 'MainActivity',' MainActivity.this' zwróci obiekt Activity dla instancji 'MainActivity', w której się znajdujesz.' Activity' rozszerza 'Context', więc jest to często używane do uzyskania lub przekazania 'Kontekstu ' –

3

getActivity() - Zwraca działanie, z którym ten fragment jest obecnie powiązany.

0

Miałem podobne wątpliwości, co poznałem, getActivity() zwraca Activity, z którym związany jest fragment.

Metoda getActivity() jest ogólnie używana w statycznym fragmencie, ponieważ powiązane działanie nie będzie statyczne, a nie statyczny element nie może być używany w statycznym elemencie.

I used <code>getActivity()</code> here to get non-static activity to which the the placeholder fragment is associated.

7

getActivity() służy do fragment. W przypadku activity, gdziekolwiek można użyć this, można zastąpić this w fragment w podobnych przypadkach z getActivity().