Передать 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 для создания фрагмента, а затем добавляют. Но мой фрагмент внутри макета, я не хочу создавать его с помощью кода и добавлять его.

Может кто-нибудь дать мне представление о том, как передать целочисленный параметр из действия во фрагмент?

Спасибо и извините, если мой английский это не самый лучший

0 ответов

Другие вопросы по тегам