2012-09-26 39 views
22

getActivity() có nghĩa là gì? Tôi đã thấy ở một nơi nào đó, họ đã viết MainActivity.this.startActionMode(mActionModeCallback) thay vì getActivity(). ai đó có thể giải thích hai dòng này có nghĩa là gì?getActivity() có nghĩa là gì?

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

Rất có thể 'getActivity()' là phương thức do người dùng xác định không phải từ API Android. Bạn có thể đăng thêm mã không? Đặc biệt, tôi muốn biết nếu điều này là trong một lớp học mà mở rộng Activty hoặc cái gì khác. –

+0

Khi bạn sử dụng các mảnh, nó chỉ là cách để có được ngữ cảnh –

Trả lời

46

Hai định nghĩa khả năng:

+1

cảm ơn! và bạn có thể giải thích dòng này có nghĩa là gì ** MainActivity.this **? – zoey

+4

cho mã của bạn trong 'MainActivity',' MainActivity.this' sẽ trả về đối tượng Activity cho cá thể 'MainActivity' mà bạn đang ở.' Activity' mở rộng 'Context', vì vậy nó thường được sử dụng để lấy hoặc truyền xung quanh một' Context ' –

3

getActivity() - Trả lại hoạt động mà đoạn này hiện được liên kết với.

0

Tôi đã có một nghi ngờ tương tự những gì tôi biết là getActivity() trả về số Activity mà đoạn được liên kết.

Phương thức getActivity() thường được sử dụng trong đoạn tĩnh vì hoạt động liên quan sẽ không phải là thành viên tĩnh và không tĩnh không thể được sử dụng trong thành viên tĩnh.

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

7

getActivity() được sử dụng cho fragment. Đối với activity, bất cứ nơi nào bạn có thể sử dụng this, bạn có thể thay thế this trong fragment trong các trường hợp tương tự với getActivity().