내 레이아웃에 2 개의 탭이 있습니다. 비활성 탭에서 EditText에 입력 한 값을 가져 오지 못했습니다. 그래서 registerLoginFragment를 담고있는 tab이 선택됩니다. 다음 코드는 예상 값을 반환합니다.비활성 탭에서 입력 받기
EditText editTextEmail = (EditText)registerLoginFragment.getView().findViewById(R.id.editTextEmail);
는하지만 비활성 2 탭에서 값을 얻는 것은 비활성 탭의 NPE의 getView 때문에()는 null를 돌려 실패합니다. 그래서 다음과 같이 실패합니다 :
그래서 첫 번째 탭의 버튼을 클릭하면 두 탭에서 입력을 받아야합니다. 두 탭 모두 방문하고 값을 입력했습니다.
조금 더 코드 :
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(tab.getTag().toString().equals("LOGIN_TAB")){
if(registerLoginFragment == null){
registerLoginFragment = Fragment.instantiate(this, RegisterLoginFragment.class.getName());
ft.add(R.id.linearLayoutRegister, (Fragment)registerLoginFragment);
}
else{
ft.attach((Fragment)registerLoginFragment);
}
currentFragment = registerLoginFragment;
}
else if(tab.getTag().toString().equals("PERSONAL_TAB")){
if(registerPersonalFragment == null){
registerPersonalFragment = Fragment.instantiate(this, RegisterPersonalFragment.class.getName());
ft.add(R.id.linearLayoutRegister, (Fragment)registerPersonalFragment);
}
else{
ft.attach((Fragment)registerPersonalFragment);
}
currentFragment = registerPersonalFragment;
}
}
그래서 분명히이 비활성 탭에서 값을 얻을 수있는 올바른 방법은 아니지만 내가 적절한 방법을 찾기 위해 실패하고있다.
는 내가이 작업을 수행 할 수 있습니다 같아요 Get text from edit text fields that are in multiple tabs
그러나보다 "우아한"방법은 무엇입니까?
감사 Velja