Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从片段中以编程方式添加的edittext获取值_Android_Android Fragments - Fatal编程技术网

Android 从片段中以编程方式添加的edittext获取值

Android 从片段中以编程方式添加的edittext获取值,android,android-fragments,Android,Android Fragments,我有一个碎片。在该片段中,我以编程方式创建edittext小部件,如下所示: driverItem = new EditText(getContext()); driverItemArray.add(driverItem); driverItem.setId((int) dataSnapshot.getChildrenCount()); driverItem.setHint(people.getItem()); driverItem.setLayoutParams(new LinearLayou

我有一个碎片。在该片段中,我以编程方式创建edittext小部件,如下所示:

driverItem = new EditText(getContext());
driverItemArray.add(driverItem);
driverItem.setId((int) dataSnapshot.getChildrenCount());
driverItem.setHint(people.getItem());
driverItem.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
lin.addView(driverItem);
那么,当按下MainActivity中的按钮时,如何从片段中获取edittext值呢

用新代码更新

这是我的主要活动

这是我的片段


}

试试这个,它会将所有EditText文本保存在字符串数组中

String[] strings = new String[](driverItemArray.length);
for(int i=0; i < driverItemArray.length; i++){
    string[i] = driverItemArray[i].getText().toString();
}

在片段中将driverItem声明为全局变量,并使用此方法:

public String getEditTextValue() {
 return driverItem.getText().toString().trim();
}
从活动中,您有一个片段的实例。然后调用上述方法:

String value = fragmentInstance.getEditTextValue();

实现这一点的方法是使用回调模式。因此,当您创建片段时,它接受一个接口。当按钮被调用时,它调用该接口上的一个方法。然后,活动可以是实现接口以接收事件的活动。Android Studio甚至可以为您创建样板文件

在你的碎片里

在按钮上单击listener

onReturnValue(driverItem.getText().toString())
接口本身

FragmentInteractionListener上的公共接口{ 返回值字符串驱动项无效; }

活动


我的MainActivity和Fragment是两个不同的文件,因此我无法访问字符串。您可以使用intentI have multiple edittext将字符串数组传递给您的片段。有可能一次获取所有值吗?可能我实现错误,但driverItem是在片段中创建的,因此我不知道如何在我的MainActivity中使用onReturnValue。这是一个非常基本的模式,您需要学习使用片段。试着读一下:好的。现在我很困惑。我现在正在使用viewpager显示我的片段。所以我还需要设置一个片段布局,就像你提到的链接一样。从edittext小部件获取值似乎有点过分。但我会给它一个机会,那篇文章并没有这样说。。。看着它,我甚至猜不出你在说什么
String value = fragmentInstance.getEditTextValue();
@Override
public void onAttach(Context context) {
    super.onAttach(context);
    if (context instanceof OnFragmentInteractionListener) {
        mListener = (OnFragmentInteractionListener) context;
    } else {
        throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
    }
}
onReturnValue(driverItem.getText().toString())
public class MyActivity implements OnFragmentInteractionListener  {
    ....

    public void onReturnValue(String value) {
       //youre inside the activity now so use the value
    }
}