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();
답변
- 지원 라이브러리 조각을 사용하지 않는 경우 다음을 수행하십시오.
((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();
이 코드를 시도