gpt4 book ai didi

android - 在 fragment 上输入 EditText 并填充所有其他 fragment

转载 作者:搜寻专家 更新时间:2023-11-01 09:33:11 24 4
gpt4 key购买 nike

我已经实现了来自 Android Training Site 的 Android 教程到目前为止一切正常。

Fragment 中,我添加了一个 EditText 字段,用户可以在其中输入简单的文本字符串。

我想要实现的是:如果用户输入了一些东西,然后向左或向右滑动,输入也应该被“复制”到新的 fragment 中。

在训练中,我有一个 ScreenSlidePageFragment.java 类和一个 ScreenSlideActivity.java 类。

我在 ScreenSlidePageFragment 中实现了一个接口(interface),as mentioned here :

Communicator mCallback;

public interface Communicator {
void sendData(String inpString);
}

@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
mCallback = (Communicator) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() + "must Implement OnEditChangedListener");
}
}

但最后,我只是设法在 ScreenSlideActivity 上接收到它。如何更新指定 fragment ?在 ScreenSlideActivity 中,我试图将其发送回新 fragment 。

@Override
public void sendData(String inpString) {
WHATFRAGMENT.changeData(inpString);
}

但是我如何访问另一个在 ScreenSlidePagerAdapter 中创建的 (WHATFRAGMENT):

 @Override
public Fragment getItem(int position) {
return NewReservationSlidePageFragment.create(position);
}

我是否需要创建一个完整的 fragment 并覆盖新位置?或者甚至有必要解决该 Activity ?是否可以以某种方式使用 FragmentTransaction

最简单的解决方案是什么?

最佳答案

您可以通过 interface 实现和 public void setUserVisibleHint(boolean isVisibleToUser)

像这样在你的界面中添加一个方法,

public interface Communicator {
void sendData(String inpString);
String getData();
}

然后在您的 Activity 中创建一个全局字符串变量来存储值。

并分配来自sendData的数据在那个

@Override
public void sendData(String inpString) {
this.value = inpString;
//WHATFRAGMENT.changeData(inpString);
}

并实现getData也在你的 Activity 中

@Override
public void getData() {
return this.value;
}

添加setUserVisibleHint在你的 fragment 中

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
if(isVisibleToUser) {
mCallback.sendData("[string from your edit text]");
} else {
String value = mCallback.getData();
}
}

现在您可以看到您在一个 fragment 中编辑的数据可以显示在其他可见 fragment 中。

关于android - 在 fragment 上输入 EditText 并填充所有其他 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45509569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com