Fragment 전달의 두 가지 방식
23008 단어 fragment 전송값
FRAGMENT 매개 변수 전달 방법 1
Activity에서 필드를 정의한 다음에 set과 get 방법을 추가합니다. 코드는 다음과 같습니다. mTitle는 전달할 매개 변수입니다. 전달 대상이라면 mTitle을 하나의 대상으로 바꾸면 됩니다.
public class DemoActivity {
private String mTitle;
public String getmTitle() {
return mTitle;
}
public void setmTitle(String title) {
this.mTitle = title;
}
}
Fragment 호출 방법 중 주의해야 할 것은 값을 설정할 때 강하게 돌려야 한다는 것이다
((DemoActivity)getActivity()).getmTitle();
FRAGMENT 매개 변수 전달 방법 2
bundle를 사용하여 매개 변수를 전달할 수 있다. 이렇게 하면 두 개의 Fragment가 움직일 때 매개 변수를 가져올 수 있고 복잡한 대상도 전달할 수 있다.
ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(""));
DemoFragment demoFragment = new DemoFragment();
Bundle bundle = new Bundle();
bundle.putString("key", " ");
demoFragment.setArguments(bundle);
ft.add(R.id.fragmentRoot, demoFragment, SEARCHPROJECT);
ft.commit();
다른 Fragment에서 파라미터를 얻는 방식은 하나의 문장, 키는 자신이 정의한 표지, 파라미터의 형식으로bundle가 전달할 수만 있다면 모두 실현할 수 있다
String string = getArguments().getString("key");
총결산
위의 두 가지 방법 중 하나는 간단하지만 개인적으로는 약간 투기적이지만 자바의 개발 규범에 부합된다. 같은 Activity에 많은 Fragment를 탑재해야 한다면 이런 방법은 의심할 여지없이 간단하다
방법 두 번째는 안드로이드의 Bundle을 사용하여 전달하는 것이다. 이런 방법은 좀 더 공식적이어야 한다. 그러나 프로젝트 개발에서 어떻게 실현하든 간단하면 얼마든지 상관없다.