onClick()
또는 다른 onSomething()
처리기를 말하는 경우이 부분은 항상 Activity
클래스에서 호출되며 조각이 아닙니다. 따라서 연결 한 예에서 onArticleSelected()
은 중첩 된 조각이 있어도 Activity
에 있어야합니다.
조각에 정보를 전달하려면 몇 가지 옵션이 있습니다. 하나는 활동 내의 단편에 대한 참조를 유지할 수 있습니다. 활동이 다시 생성되면 (예 : 설정 이벤트)이 내용이 손실 될 수 있습니다.
두 번째로 더 좋은 방법은 조각에 태그를 지정한 다음 findFragmentByTag
을 사용하는 것입니다.
당신은 당신의 조각 (나는 조각에 준 태그입니다 매개 변수 "my_fragment"주의) 추가 할 때 :
getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, myFragment, "my_fragment").commit();
을 또는 다른 하나 개의 조각을 교체 할 때 :
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, myFragment, "my_fragment").comit();
을 그런 다음 활동의 onArticleSelected
내에있는 조각에서 무언가를하고 싶을 때 :
Fragment fragment = getSupportFragmentManger().findFragmentByTag("my_fragment");
if (fragment != null) {
fragment.articleSelected(articleId);
}
코드를 제공 할 수 있습니까? –