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 获取不同片段的值
基础教程推荐
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- iOS4 创建后台定时器 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
