Я реализовал сканер NFC и когда тег сканируется метод onNewIntent
вызывается успешно, например, так:Как получить текущий фрагмент в задаче выбора?
@Override
protected void onNewIntent(Intent intent) {
setIntent(intent);
resolveIntent(intent);
}
В resolveIntent
я хочу обновить пользовательский интерфейс, основанный на проверяемом теге. Проблема в том, что я не могу понять, как получить ссылку на фрагмент.
Я думал, что я мог бы использовать метод isValidFragment
ухватить фрагмента, но не повезло до сих пор:
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);
}
Так, в принципе единственное, что мне нужно, это ссылка на текущий фрагмент , то мне нужно проверить, является ли оно MyFragment
, а затем просто вызвать метод, который обновляет пользовательский интерфейс.
Я нашел несколько похожих вопросов, но до сих пор не могу понять. Я также попытался использовать интерфейс и сделать обратный вызов, но я до сих пор не знаю, как ссылаться на фрагмент.
EDIT: Это 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>
"getFragmentManager(). FindFragmentById (R.id.myFragment)", чтобы использовать этот фрагмент кода, вам нужно дать идентификатор фрагмента элемента в XML-файле. Так вы можете получить ссылку от данного элемента в xml. Если вы можете разместить дополнительную информацию о своей архитектуре, мы можем найти способ ее достижения. –
Похоже, что действие сканера начинает детальную активность при успешной проверке. Детальная деятельность раздувает один из трех разных фрагментов, чтобы показать детали различных типов объектов в пользовательском интерфейсе. Правильно? –
@ EmreAktürk Я обновил свое сообщение с помощью фрагмента файла 'pref_headers.xml'. Я поместил там идентификатор фрагмента, но он, похоже, не распознается. – Apostrofix