问题描述
我正在开发一个动态生成片段的应用程序.
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 获取不同片段的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)