gpt4 book ai didi

Android fragment - findFragmentByTag 总是返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:54 25 4
gpt4 key购买 nike

我环顾四周,发现了几个主题相似的问题,但对我的情况没有任何帮助。我正在尝试使用 getSupportFragmentManager().findFragmentByTag(TAG) 访问现有的 Activity fragment ,但它始终返回 null。类似问题的回复提示commit执行需要一段时间,所以过早调用findFragmentByTag会返回null。我试过两件事:

  • 添加getSupportFragmentManager().executePendingTransactions()
    提交后立即,但仍然得到 null
  • 添加了一个按钮...在创建 Activity 后按下此按钮,注册的 fragment 和显示的 View 应该离开系统有足够的时间来提交。但我仍然得到 null

这是我的 Activity :

public class MainActivity extends ActionBarActivity {

private static final String F_SETTINGS = "f_settings";

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

setContentView(R.layout.activity_main);

Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
debug();
}
});

if (savedInstanceState == null) {
FSettings newFragment = new FSettings();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.container, newFragment);
ft.addToBackStack(F_SETTINGS);
ft.commit();
// getSupportFragmentManager().executePendingTransactions();
//// Activating this did not make any difference...
}

debug();
}

private void debug() {
String txt = "null";
Fragment frag = getSupportFragmentManager().findFragmentByTag(F_SETTINGS);
if (frag != null) {
txt = frag.toString();
}
Log.i("Testing", txt);
}

我在这里做错了什么?干杯,最大

最佳答案

在你的代码中,你没有在替换方法中提到标签所以,
使用此结构的 fragment 替换方法

ft.replace(R.id.container, newFragment,"fragment_tag_String");

有关详细信息,请参阅此链接。 fragment replace with tag name

关于Android fragment - findFragmentByTag 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18331481/

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