+=================+
| Fragment1 |
+=================+
| Name (EditText) |
===================
| ID No (EditText)|
===================
+=================+
| Fragment2 |
+=================+
| Name (EditText) |
===================
| ID No (EditText)|
===================
我在FragmentActivity中只有一个按钮,而不是在Fragment中。 如何将所有这些EditTexts添加/收集到fragmentActivity的列表中?
感谢您的帮助
答案 0 :(得分:3)
为每个片段提供一个唯一标记,例如,fragment1标记为“frag1”,fragment2标记为“frag2”,在FragmentActivity中,您可以使用其标记访问片段,如下所示:
Fragment1 fragment1 = (Fragment1)getFragmentManager().findFragmentByTag("frag1");
Fragment2 fragment2 = (Fragment2)getFragmentManager().findFragmentByTag("frag2");
现在您可以访问fragment1 / fragment2中的edittext,
EditText editText1 = (EditText) fragment1.getView().findViewById(R.id.editText);
然后, 您可以将文本作为editText1.getText();
获取答案 1 :(得分:0)
另一种可能性是如果你不想使用getView和findViewById那(我真的不知道哪一个更高性能,如果有人知道任何关于它的东西,我很乐意解释它:)) :
class MyFirstFragment extends Fragment {
...
private EditText someEditText;
...
public Object doSomethingAndGetMeSomething() {
return somePreviouslyDefinedData;
}
}
您只需将标记收到的片段直接转换为此java类:
MyFirstFragment firstFrag = (MyFirstFragment) getFragmentManager().findFragmentByTag("frag1");
并调用您定义的某些函数,让它执行您想要的任何任务。
不确定哪种方式在性能方面更好,因为在这一方面你必须在创建视图时继续引用你的视图,而在另一方面你只需要搜索它。?