gpt4 book ai didi

Java - 将数据从 Activity 传递到 Fragment

转载 作者:行者123 更新时间:2023-12-02 02:43:35 25 4
gpt4 key购买 nike

我刚刚学习 fragment 。我遵循了从 fragment 创建一个界面的答案,以根据按钮单击将数据传回我的 Activity ,并且它工作得很好。

我无法弄清楚如何让我的 fragment 在创建所有内容后监听我的 Activity 中的特定更改,就像我的 Activity 如何做到这一点。

基本上,我的 Activity 中有一个按钮,我的 fragment 中有另一个按钮。当我单击 Activity 中的按钮时,我想发送一些数据,以便我的 fragment 知道更改 fragment 按钮的文本。

这是我当前的 fragment

public void onClickBtn1(View v) {
passData("abc");
}

public interface OnDataPass {
void onDataPass(String data);
}

OnDataPass dataPasser;

@Override
public void onAttach(Context a) {
super.onAttach(a);
dataPasser = (OnDataPass) a;
}

public void passData(String data) {
dataPasser.onDataPass(data);
}

然后这是我的 Activity

@Override
public void onDataPass(String data) {
//do something with data
}

我想以某种方式得到完全相同的东西,但失败了。有什么建议么?谢谢!

最佳答案

你应该这样做

public class MainFragment extends Fragment implements MainActivity.OnDataPassedListener {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main, container, false);
}

@Override
public void onDataPassed(String text) {
Log.d("text",text);
}
}

以及您的 Activity

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MainFragment mainFragment = new MainFragment();
mainFragment.onDataPassed("xx");
}

public interface OnDataPassedListener {
void onDataPassed(String text);
}
}

关于Java - 将数据从 Activity 传递到 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45028296/

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