Getting the values from the different fragments from ViewPager(从 ViewPager 获取不同片段的值)
问题描述
我正在开发一个动态生成片段的应用程序.
I am developing an application where the fragments are being generated dynamically.
private void setupViewPager(ViewPager viewPager) {
adapter = new ViewPagerAdapter(getSupportFragmentManager());
for (int i = 0; i < sequence_no.size(); i++)
{
adapter.addFragment(FragmentTwo.newInstance(i,(i+1)));
}
viewPager.setAdapter(adapter);
}
现在假设确实生成了三个片段.生成的片段确实有不同的小部件,如编辑文本、微调器等.我会管理它,因为我有一个标志通知我要显示哪一个(微调器或编辑文本).
Now suppose there does three fragments got generated. The generated fragments do have different widgets like edittext, spinner etc. which i do mannage as i have one flag which notifies me which one to be displayed(spinner or edittext).
我有一个活动按钮,单击该按钮后我需要从所有片段中获取值,但我如何仅从第一个片段中获取值.
I have one button in activity upon whose click i need to get the values from all the fragments bu some how I am getting the value from first fragment only.
我在这里放了一个错误的样本,因为我知道它是错误的,但我保留以供参考.
I am putting a wrong sample over here as I know its wrong but I am keeping for reference purpose.
下面是提交按钮单击的代码,其中值是一个数组列表.
below is the code on submit button click where values is an array list.
if (FragmentTwo.ed_complain != null)
{
values.add(FragmentTwo.ed_complain.getText().toString());
}
if (FragmentTwo.cb_complain != null)
{
values.add(FragmentTwo.cb_complain.getText().toString());
}
if (FragmentTwo.spinner_complain != null && FragmentTwo.spinner_complain.getSelectedItem() != null)
{
values.add(FragmentTwo.spinner_complain.getSelectedItem().toString());
}
请建议我如何从所有片段中获取所有值.
Please suggest me what I need to do for fetching all the values from all the fragments.
推荐答案
你可以用这种方式解决这个问题.创建一个 Interface
并在每个片段中实现它.现在使用这个 Interface
你可以从特定的片段中获取价值.
You can solve this problem using this way.
Create an Interface
and implement it in each fragments. Now using this Interface
you can get value from specific fragment.
例如,您创建一个 Interface
public interface IGetValue{
String getEditTextValue();
}
现在,如果每个 Fragment 都实现了这个接口,那么每个 Fragment 都必须实现这个 getEditTextValue()
方法,您可以返回该实现方法的 EditText 值.只需使用:
Now, if each Fragment implements this interface then each fragment have to implements this getEditTextValue()
method and you can return EditText value of that implemented method. just use :
@Override
public String getEditTextValue() {
return YOUR_EDIT_TEXT.getText().toString();
}
现在,如果您想在活动中从 Fragment1
获取 EditText
值,只需使用以下代码行:
Now, if you want to get EditText
value from Fragment1
in your activity, just use this line of code:
String valueFromFragment1= fragment1Instance.getEditTextValue();
有关详细信息,请查看 this 和 这个答案.
For more info, check this and this answer.
谢谢:)
这篇关于从 ViewPager 获取不同片段的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:从 ViewPager 获取不同片段的值
- SetOnItemSelectedListener上的微调程序错误 2022-01-01
- 使用自动布局向 UIScrollView 添加动态大小的视图 2022-01-01
- 如何在 iPhone 模拟器中重置 NSUserDefaults 数据? 2022-01-01
- 在 Iphone SDK 的导航栏上添加多个按钮 2022-01-01
- URL编码Swift iOS 2022-01-01
- UITextView 内容插图 2022-01-01
- 网上有没有好的 UIScrollView 教程? 2022-01-01
- GPS状态的广播接收器? 2022-01-01
- 类似于 Mail.app 的 iPad 模态视图控制器? 2022-01-01
- Xcode 7.3 中带有 UILabel 的 UIStackView 2022-01-01