부모 활동에서 Fragment 메서드 호출 findFragmentByTag().” 다음 예제는 조각 참조를

I는 참조에 안드로이드 파편 데브 안내서 에 “활성, FragmentManager의 단편에 대한 참조를 획득하여 단편의 메소드를 호출 할 수있는 findFragmentById()findFragmentByTag().”

다음 예제는 조각 참조를 가져 오는 방법을 보여 주지만 조각에서 특정 메서드를 호출하는 방법은 보여주지 않습니다.

누구든지 이것을 수행하는 방법의 예를 줄 수 있습니까? 부모 활동의 조각에서 특정 메서드를 호출하고 싶습니다. 감사.



답변

너무 간단한 질문을 정확하게 얻지 못합니다.

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.<specific_function_name>(); 

업데이트 :
Kotlin을 사용하는 사람들을 위해

var fragment = supportFragmentManager.findFragmentById(R.id.frameLayoutCW) as WebViewFragment
fragment.callAboutUsActivity()


답변

“import android.app.Fragment;”를 사용하는 경우 그런 다음 다음 중 하나를 사용하십시오.

1)

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.specific_function_name(); 

R.id.example_fragment는 XML 레이아웃 내부의 FrameLayout ID 일 가능성이 가장 높습니다. 또는

2)

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentByTag(“FragTagName”);
fragment.specific_function_name(); 

여기서 FragTagName은 u가 수행했을 때 지정한 이름입니다.

TabHost mTabHost.newTabSpec(“FragTagName”)

“import android.support.v4.app.Fragment;”를 사용하는 경우 그런 다음 다음 중 하나를 사용하십시오.

1)

ExampleFragment fragment = (ExampleFragment) getSupportFragmentManager().findFragmentById(R.id.example_fragment);
fragment.specific_function_name(); 

또는

2)

ExampleFragment fragment = (ExampleFragment) getSupportFragmentManager().findFragmentByTag(“FragTagName”);
fragment.specific_function_name(); 


답변

지원 라이브러리를 사용하는 경우 다음과 같이 할 수 있습니다.

FragmentManager manager = getSupportFragmentManager();
Fragment fragment = manager.findFragmentById(R.id.my_fragment);
fragment.myMethod();


답변

  1. 지원 라이브러리 조각을 사용하지 않는 경우 다음을 수행하십시오.

((FragmentName) getFragmentManager().findFragmentById(R.id.fragment_id)).methodName();

2. 지원 라이브러리 조각을 사용하는 경우 다음을 수행합니다.

((FragmentName) getSupportFragmentManager().findFragmentById(R.id.fragment_id)).methodName();


답변

조각에서 메서드를 호출하기 전에 조각이 추가되었는지 확인하는 것이 가장 좋습니다. null 예외를 방지하려면 다음과 같이하십시오.

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
if(fragment.isAdded()){
  fragment.<specific_function_name>();
}


답변

단편에서 활동으로 :

((YourActivityClassName)getActivity()).yourPublicMethod();

활동에서 조각으로 :

FragmentManager fm = getSupportFragmentManager ();

//if you added fragment via layout xml
YourFragmentClass fragment =
(YourFragmentClass)fm.findFragmentById(R.id.your_fragment_id);
fragment.yourPublicMethod();

코드를 통해 조각을 추가하고 조각을 추가 할 때 태그 문자열을 사용한 경우 대신 findFragmentByTag를 사용합니다.

YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentByTag("yourTag");


답변

먼저 fragment같은 방법으로 방법을 만듭니다.

public void name()
{


}

당신에 activity당신이 추가

onCreate()방법 추가

myfragment fragment=new myfragment()

마지막으로 호출하려는 메소드를 호출하십시오.

fragment.method_name();

이 코드를 시도