android - 如何从选项卡中的两个不同 fragment 获取数据到主要 Activity

标签 android android-fragments android-tabs fragment-tab-host

我想知道如何从选项卡布局内的 2 个不同 fragment 获取数据。

例如:在此图像中,有两个选项卡 tab1 和 tab2 都在编辑文本中存储了不同的值。

tab1 你好, tab2 hiiiiiii

我在主要 Activity 中有一个按钮可用,用于同时从两个选项卡获取数据。

现在我的问题是如何在用户点击时同时从两个选项卡获取数据

获取数据按钮

enter image description here

最佳答案

1.) 在您的 Activity 中保留您的 fragment 的引用。

 public class Activity extends AppCompatActivity  {
      private yourFargment frag1,frag2;
    }

2.) 在AdaptergetItem() 中将对象引用获取到您的引用变量中。

@Override
public Fragment getItem(int index) {
    switch (index) {
        case 0:
            frag1 = yourFargment.newInstance(index);
//frag1 =new yourFargment (); can also be used

            return frag1;
        case 1:
            frag2 = yourFargment.newInstance(index);
            return frag2;
    }
    return null;
}

3.) 在您的 onClick 中,您可以简单地从 edittext 中获取这些值。

onClick(View..){
String val1 = frag1.edittext1.getText().toString(); // Note: make your `edittext` public
String val2 = frag2.edittext2.getText().toString();

String val1 = frag1.getData();
String val2 = frag2.getData();
}

getDatafragment 中的一个 public 方法

    public class yourFragment..{
      public String getData(){
       return edittext.getText().toString();
       // Note: with this no need to make your `edittext` public 
    }
}

关于android - 如何从选项卡中的两个不同 fragment 获取数据到主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39466100/

相关文章:

android - 滑动 TabLayout 选项卡不可点击

java - Android - 如何将 TextView 值从 Activity-A 传递到适配器

android - 创建不受父 View 约束的触摸波纹

安卓ViewPager : Recursive entry to executePendingTransactions with no nested fragments

带有选项卡和 Viewpager 的 Android fragment

android - 同一个ViewPager如何添加不同的fragment?

安装了 Android Fetch 和设备中的默认浏览器

android - 如何与另一个模块共享模块的 androidTest "Robots"?

android - 更改 fragment 中文本的适配器不起作用

java - viewPager.setOnPageChangeListener() 中 fragment 返回 null