2014-09-18 7 views
0

나는 프래그먼트 클래스를 가지고 있는데, 나는 Async 콜을하고있다. 이제 Fragment 클래스에서 메서드를 만들고 있는데이 메서드를 MainActivity 클래스에서 호출하려고합니다. MainActivity 클래스는 Fragment 클래스를 동적으로로드합니다.MainActivity에서 조각 클래스의 메서드에 액세스하는 방법?

코드 조각은 다음과 같습니다 나는

MainHandlerFragment fragment = new MainHandlerFragment(user); 
    fragment.getDetails(); // But i am getting NullPointerException. 

방법 MainActivity에 조각 클래스의 메소드를 호출하는 호출 오전

public class MainHandlerFragment extends Fragment{ 

    public boolean getDetails(User user){ 
     if(user==null) 
     return false; 
     else 
     return true; 
    } 
} 

MainActivity.java?

+3

'getDetails'에 인수를 넘기는 것을 보지 못했습니다 ... – Simas

답변

2

다음은 예입니다 :

public class MyFragment extends Fragment { 

    public static final String TAG = “MyFragment.TAG”; 

    // Implementation follows. 

} 

public class MyActivity extends Activity { 

    public MyFragment getMyFragment() { 
     final FragmentManager manager = getFragmentManager(); 
     return (MyFragment) manager.findFragmentByTag(MyFragment.TAG); 
    } 

    public void invokeMethodFromMyFragment() { 
     final MyFragment fragment = getMyFragment(); 
     if (null != fragment) { 
      fragment.getDetails(); 
     } 
    } 

} 

이 최선을 다하고 때 MyFragment 트랜잭션이 MyFragment.TAG 태그를 포함 가정합니다.

+0

ok .. Fragment에서 MainActivity로 객체 하나를 전달하려면 어떻게해야합니까? 이전 User 객체의 경우 조각에서 전달 중입니다. MainActivity @curtisLoew – anand

+1

[docs] (http://developer.android.com/training/basics/fragments/communicating.html)를 읽으십시오. 정확히 찾고 계신 내용입니다. – curtisLoew

+0

고맙습니다 .. @ curtisLeow. 정말 설명서가 도움이되었고 효과적이었습니다. – anand

0
FragmentClass fragment = (FragmentClass) getFragmentManager().findFragmentById(
       R.id.ll_fragment1); 
     fragment.fragmentMethod(); 

당신이

0

봅니다 활동에서 조각의 메소드를 호출 할 수 있습니다 활동이 ((추가) 또는 대체 사용하여 트랜잭션을 완료 한 후

fragment.getDetail(user); 

를 호출 할) 방법 트랜잭션 클래스 .... 및 commit()도 포함됩니다.

희망.

관련 문제