gpt4 book ai didi

java - Android fragment : How to work with views on other layouts?

转载 作者:行者123 更新时间:2023-12-01 18:37:22 25 4
gpt4 key购买 nike

我正在编写一个使用 Fragments 的 Android 应用程序 (4.4)。每个 fragment 都位于其自己的 .java 文件(及其自己的类)中,并且每个 fragment 都有其自己的 .XML(布局)文件。在主 FragmentActivity 中,我的“getItem”例程读取“position”参数,并根据需要创建这些类的实例。

当应用程序启动时,当 Fragment 0(零)启动时,它会在“onCreateView”中运行一些代码。根据该代码中发生的情况,我需要更改 Fragment 1 的 UI(按钮根据该逻辑出现和消失)。

但是,代码运行时没有错误,但 UI 更改未生效。我在想也许我需要在范围更广的其他地方运行我的“启动”代码。我可能是错的。

谁能给我建议一种方法,让我能够在启动时控制各种布局的 UI?

谢谢!

最佳答案

如果您可以发布一些代码,那就更容易了。

无论如何,如果我遇到了您的问题,您需要将 fragment 1 的 UI 从 fragment 0 更改。

你需要的是文档Communicating with Other Fragments中解释的内容

你应该这样做:

public class MyActivity extends FragmentActivity implements MyInterface{

@Override
public void changeUI(String sometext) {
Fragment1 fragment1 = (Fragment1) getFragmentManager().findFragmentByTag("tagCommittedFragment1");
fragment1.applyChange(sometext);
}

}

public class Fragment0 extends Fragment{

MyInterface mMyInterface;

public interface MyInterface {
public void changeUI(String sometext);
}

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);

mMyInterface = (MyInterface) activity;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mMyInterface.changeUI("newtext");
}

}

public class Fragment1 extends Fragment{
public void applyChange(String sometext){
// do your work
}
}

关于java - Android fragment : How to work with views on other layouts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367039/

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