作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个使用 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/
我是一名优秀的程序员,十分优秀!