2012-09-26 27 views
22

getActivity()是什麼意思?我在某處看到,他們寫了MainActivity.this.startActionMode(mActionModeCallback)而不是getActivity()。有人能解釋這兩行意味着什麼?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

最有可能'getActivity()'是不是來自Android API的用戶定義方法。你能發佈更多的代碼嗎?特別是,我想知道這是否屬於擴展Activty或其他類的類。 –

+0

當你使用碎片時,只有這樣才能得到上下文 –

回答

46

兩個可能的定義:

+1

謝謝!你能解釋一下這條線是什麼意思** MainActivity.this **?在MainActivity中爲你的代碼提供 – zoey

+4

,MainActivity.this將爲你所在的MainActivity的實例返回一個Activity對象。Activity活動擴展Context,所以這常常用於獲取或傳遞Context ' –

3

getActivity() - 返回此片段當前與之關聯的活動。

0

我有一個類似的疑問,我所知道的是getActivity()返回片段所關聯的Activity

getActivity()方法通常在靜態片段中使用,因爲關聯的活動不會是靜態的,並且非靜態成員不能在靜態成員中使用。

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

7

getActivity()用於fragment。對於activity,無論您在哪裏使用this,都可以使用getActivity()代替中的。