Передать Integer ID из одного действия во фрагмент, который определен в макете
У меня есть SherlockFragmentActivity, что это ViewPagerActivity.
На одной из его страниц верните мне фрагмент SherlockFragment, чтобы показать список кодов.
Когда я нажимаю на один из этих кодов, мне нужно показать подробности выбранного кода (список призов, связанных с кодом).
Поэтому я использовал onItemClick, чтобы получить идентификатор кода и отправить его другому SherlockFragmentActivity (PrizesActivity). Для этого я помещаю идентификатор в комплект и отправляю через Intent.putExtras.
После этого по методу onCreate функции PrizesActivity я выбираю код с помощью this.getIntent(). GetExtras()
До этого момента все идет хорошо.
Проблема возникает по этому вопросу. Мои призы - это RelativeLayout с другим фрагментом внутри!
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/white"
tools:context=".MainActivity" >
<fragment
android:id="@+id/exchanged_prizes_list_fragment"
android:name="project.fragments.lists.FragmentExchangedPrizesList"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment_exchanged_prizes_list" />
</RelativeLayout>
Это еще один фрагмент, это SherlockListFragment, потому что он показывает список призов с помощью CursorAdapter.
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:cacheColorHint="#00000000"
tools:listitem="@layout/list_item_exchanged_prizes" />
</RelativeLayout>
Итак, мне нужно отправить идентификатор кода в этот последний фрагмент, чтобы использовать его внутри метода onCreateLoader, чтобы перейти к базе данных и получить список призов этого идентификатора.
Я использую этот код для получения SherlockListFragment и работает нормально
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.exchanged_prizes_list_fragment);
if (fragment != null)
fragment.getArguments().putAll(bundle);
Но, когда я проверяю, аргументы фрагмента равны нулю! Я пытаюсь поставить с помощью fragraget.getArguments() или Frag.setArguments() и я оба раза равен нулю.
Итак, проблема именно в этом.
Мне нужно передать Integer ID из одного действия во фрагмент, который он определен в макете.
Я прочитал много решений от людей, которые добавляют FragmentManager и FragmentTransaction для создания фрагмента, а затем добавляют. Но мой фрагмент внутри макета, я не хочу создавать его с помощью кода и добавлять его.
Может кто-нибудь дать мне представление о том, как передать целочисленный параметр из действия во фрагмент?
Спасибо и извините, если мой английский это не самый лучший