我的布局中有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