gpt4 book ai didi

android - 如何在首选项 Activity 中获取当前 fragment ?

转载 作者:搜寻专家 更新时间:2023-11-01 09:47:45 25 4
gpt4 key购买 nike

我已经实现了一个 NFC 扫描器,当一个标签被扫描时,onNewIntent 方法被成功调用,如下所示:

@Override
protected void onNewIntent(Intent intent) {
setIntent(intent);
resolveIntent(intent);
}

resolveIntent 中,我想根据扫描的标签更新 UI。问题是我无法弄清楚如何获取对该 fragment 的引用。

我以为我可以使用 isValidFragment 方法来获取 fragment ,但到目前为止运气不好:

protected boolean isValidFragment(String fragmentName) {

if (fragmentName != null && !fragmentName.equals("")) {
Fragment f = getFragmentManager().findFragmentById(R.id.myFragment); // this is always null
if (f != null && f instanceof MyFragment)
myFragment = (MyFragment) f;
}

return PreferenceFragment.class.getName().equals(fragmentName)
|| GeneralPreferenceFragment.class.getName().equals(fragmentName)
|| MyFragment.class.getName().equals(fragmentName);
}

所以,基本上我唯一需要的是对当前 fragment 的引用,然后我需要检查它是否是 MyFragment,然后调用更新 UI 的方法。

找了几个类似的问题,还是想不通。我也尝试过使用接口(interface)并进行回调,但我仍然不知道如何引用该 fragment 。

编辑:这是pref_headers.xml 文件:

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
<header
android:fragment=".SettingsActivity$GeneralPreferenceFragment"
android:title="@string/pref_header_general" />
<header
android:fragment=".SettingsActivity$MyFragment"
android:id="@+id/myFragment"
android:title="Test" />
</preference-headers>

最佳答案

PreferenceActivity 上,覆盖方法 onAttachFragment。单击 时,您可以在此处获取对 fragment 的引用。

    @Override
public void onAttachFragment(Fragment fragment) {
super.onAttachFragment(fragment);
}

关于android - 如何在首选项 Activity 中获取当前 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114649/

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