我的布局中有 2 个选项卡。我无法在非活动选项卡的 EditText 中输入输入值。因此,假设选择了包含 registerLoginFragment 的选项卡。以下代码返回预期值。
EditText editTextEmail = (EditText)registerLoginFragment.getView().findViewById(R.id.editTextEmail);
但是从第二个不活动的选项卡获取值会因 NPE 失败,因为不活动的选项卡的 getView() 返回 null。所以以下是失败的:
EditText EditTextFirstName = (EditText)registerPersonalFragment.getView().findViewById(R.id.EditTextFirstName);
因此,当单击第一个选项卡上的按钮时,我需要从两个选项卡中获取输入。两个选项卡都被访问并输入了值。
更多代码:
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