gpt4 book ai didi

android - 静态 fragment

转载 作者:行者123 更新时间:2023-11-29 21:02:20 29 4
gpt4 key购买 nike

我在同一个 Activity 中有两个静态 fragment ,在“fragmentA”中我有一个自定义列表,当一个项目被点击时必须在“fragmentB”中出现一个细节,细节只在我改变屏幕方向时出现,不会自动出现。我在主要 Activity 中使用此代码进行刷新但应用程序重新启动(出现详细信息)。

完成();启动 Activity (getIntent());

有人知道一种更好的方法,当我点击“fragmentA”中的某个项目时,在“fragmentB”中自动显示细节,总是在同一个 Activity 中使用两个静态 fragment 。

最佳答案

不要使用静态引用来保存 Fragment,这是一个非常糟糕的做法。不要将上下文存储在静态引用中。 Or you could will leak memory .

相反,实现一个接口(interface):

//fragment Activity 测试

public class FragmentActivityTest extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

FragmentB fragmentB = new FragmentB();
FragmentA fragmentA = new FragmentA();
fragmentA.setFragmentBHandler(fragmentB);

//Perform transactions etc
}
}

//fragment A

public class FragmentA extends Fragment {

private FragmentBHandler _handler;

public void setFragmentBHandler(FragmentBHandler handler) {
_handler = handler;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
((ListView) getView().findViewById(R.id.list_view)).setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
_handler.updateDetail();
}
});
}
}

//fragment B

public class FragmentB extends Fragment implements FragmentBHandler {

@Override
public void updateDetail() {
//do your work
}
}

关于android - 静态 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25670759/

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