Передача данных между фрагментами

Интерфейс, диалоги, темы, стили, меню
Ответить
AlexPl
Сообщения: 2
Зарегистрирован: 10 сен 2013, 22:26

Передача данных между фрагментами

Сообщение AlexPl » 28 сен 2013, 01:34

Здравствуйте!
Решил сделать приложение, в котором есть пара фрагментов. В одном из них просто EditText и пара кнопок, а на втором тоже самое, только с расширенными настройками (допустим, spinner добавлен). Переход между фрагментами взят у гугла, а когкретно такой: http://developer.android.com/intl/ru/tr ... dflip.html
Соответственно, если пользователь введет что-то в первом edittext, то при перевороте фрагментов текст должен переходить во второй.
Если почитать реализацию перехода, то там есть 2 класса-фрагмента с лэйаутами, в которых эти edittext, однако, в основной лэйаут они вставляются в контейнер FrameLayout c помощью методов add (переход с помощью replace) и никаких id для конкретных фрагментов нет.
Как передать текст с первого edittext в активити, я еще разобрался, Но вопрос: как дотянуться до второго фрагмента, что бы впихнуть туда текст
PS добавление тегов в методах add и replace, а потом поиск их через findFragmentByTag не помогает, как и findFragmentById при всевозможных id.

Пара строк из кода: *FEditTextLittle - класс начального фрагмента, FEditTextBig - класс расширенного

Вставление фрагмента в MainActivity.java

Код: Выделить всё

if (savedInstanceState == null) {
            getFragmentManager()
                    .beginTransaction()
                    .add(R.id.container, new FEditTextLittle, "myFrag")
                    .commit();
        }
Замена фрагмента:

Код: Выделить всё

getFragmentManager()
		    		            .beginTransaction()
		    		            .setCustomAnimations(
		    		                    R.animator.card_flip_right_in, R.animator.card_flip_right_out,
		    		                    R.animator.card_flip_left_in, R.animator.card_flip_left_out)
		    		            .replace(R.id.container, new FEditTextBig(), "myTag")
		    		            .addToBackStack(null)
		    		            .commit();
И добавляется все в main.xml:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    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:orientation="vertical" >

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </FrameLayout>
    
</LinearLayout>

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Передача данных между фрагментами

Сообщение rezak90 » 28 сен 2013, 01:57

данные передаются через Bundle
R.id.team
Политика на форуме запрещена

Ответить