2012-09-26 18 views
22

¿Qué significa getActivity()? Vi en algún lugar, escribieron MainActivity.this.startActionMode(mActionModeCallback) en lugar de getActivity(). ¿alguien podría explicar lo que significan estas dos líneas?¿Qué significa 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

Probablemente 'getActivity()' es un método definido por el usuario que no proviene de la API de Android. ¿Puedes publicar más código? En particular, me gustaría saber si esto está en una clase que extienda Activty o algo más. –

+0

Cuando utiliza fragmentos, solo es posible obtener el contexto –

Respuesta

46

Dos definiciones probables:

+1

¡gracias! y ¿podría explicar qué significa esta línea ** MainActivity.this **? – zoey

+4

para su código en 'MainActivity',' MainActivity.this' devolverá un objeto Activity para la instancia de 'MainActivity' en la que se encuentra.' Activity' extends 'Context' por lo que a menudo se usa para obtener o pasar un' Context ' –

3

getActivity() - Devuelve la actividad asociada a este fragmento.

0

Tuve una duda similar de lo que llegué a saber fue getActivity() devuelve el Activity al que está asociado el fragmento.

El método getActivity() se usa generalmente en fragmentos estáticos ya que la actividad asociada no será estática y no se podrá usar un miembro no estático en un miembro estático.

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

7

getActivity() se utiliza para fragment. Para activity, donde sea que pueda usar this, puede reemplazar this en fragment en casos similares con getActivity().