gpt4 book ai didi

android - 如果它不是 Null - Android,如何加载 fragment ?

转载 作者:行者123 更新时间:2023-11-29 23:38:22 25 4
gpt4 key购买 nike

我需要一些帮助,因为我是 android 的新手,在我正在开发的 android 应用程序中,我一直在 fragment 之间导航。我使用代码在 Fragment 之间导航。

 private void displaySelectedScreen(int id){
Fragment fragment=null;
String fragment_tag="";
switch(id)
{
case R.id.nav_listen:
fragment=new ListenFragment();
fragment_tag="LISTENTAG";
break;
case R.id.nav_programs:
break;
case R.id.nav_stories:
break;
case R.id.nav_about:
break;
case R.id.nav_feedback:
break;
case R.id.nav_share:
shareTextUrl();
break;
}
if(fragment!=null){
FragmentTransaction ft=getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame,fragment,fragment_tag);
ft.commit();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}

我只需要检查 fragment 之前是否存在(加载),containter 应该显示之前加载的 fragment 。但是,如果在 Fragment 第一次加载之前没有加载 Fragment。

谁能帮我实现这个目标?

非常感谢。我 fragment 中的代码:(ListenFragment.java)

public class ListenFragment extends Fragment
{

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
getActivity().setTitle("Listen Live");
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View InputFragmentView=inflater.inflate(R.layout.listen_layout,container,false);

return InputFragmentView;
}

最佳答案

您不需要声明对 Fragment 实例的变量引用。相反,通过标签保存您的 fragment 然后获取它。像那样:

Fragment fragment = getSupportFragmentManager().findFragmentByTag("fragment_tag");
if(fragment == null) {
fragment=new ListenFragment();
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment, fragment_tag);
ft.commit();

关于android - 如果它不是 Null - Android,如何加载 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52060080/

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