2012-09-26 4 views
22

getActivity()의 의미는 무엇입니까? 나는 어딘가에서 보았는데 getActivity() 대신에 MainActivity.this.startActionMode(mActionModeCallback)을 썼다. 누군가이 두 줄의 의미를 설명 할 수 있습니까?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

두 가지 가능성이 정의하십시오 Fragment에서

+1

감사합니다! 이 라인이 무슨 뜻인지 설명해 주시겠습니까 ** MainActivity.this **? – zoey

+4

당신의 코드는'MainActivity'에서,'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을 사용할 수있는 곳이면 fragmentthisgetActivity()으로 바꿀 수 있습니다.

관련 문제