Не получается передать bundle из одного фрагмента в другой

179
15 октября 2018, 13:50

Из одного фрагмента передаю данные в другой фрагмент. Код откуда:

Text text;
myFragmentManager = getFragmentManager();
text = new Text();
final FragmentTransaction fragmentTransaction = myFragmentManager
        .beginTransaction();
btn1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Bundle bundle = new Bundle();
        bundle.putInt("javaText", R.string.btn1javaA1);
        text.setArguments(bundle);
        fragmentTransaction.replace(R.id.container, text).commit();
    }
});

Код куда:

TextView text = (TextView) view.findViewById(R.id.text);
Bundle bundle = getArguments();
if (bundle != null) {
    String javaText = bundle.getString("javaText");
    text.setMovementMethod(LinkMovementMethod.getInstance());
    text.setText(Html.fromHtml(javaText));
}

Но приложение вылетает. Мне нужно передать текст с одного фрагмента в другой в зависимости от того куда нажал пользователь.

Answer 1

Во-первых никогда не называйте фрагмент text, если уж такой нейминг - то textFragment и тип TextFragment

Во-вторых - не держите транзакцию в виде поля. Вот вы хотите сделать транзакцию внутри метода onClick там её и создавайте.

В-третьих - прикрепите стектрейс ошибки

По ошибке - вы в бандл суёте Integer и хотите достать String конечно у вас падает приложение. Закидывайте в bundle строку getString(R.string.btn1javaA1) А вообще - вы эту строку держите в ресурсах. Зачем её кидать в бандл, eсли второй фрагмент её может спокойно достать из ресурсов

READ ALSO
setHint(QueryHints.HINT_FETCH_SIZE, ?) в hibernate

setHint(QueryHints.HINT_FETCH_SIZE, ?) в hibernate

Решил почитать один блог

134
Как передать ресурс из одного фрагмента в другой?

Как передать ресурс из одного фрагмента в другой?

В одном фрагменте есть кнопки, по нажатию которых открывается другой

147
Как вывести AlertDialog?

Как вывести AlertDialog?

Мне надо по нажатию на кнопку в быстрых настройках (Tileservice) открыть AlertDialog, но его не открыть без активити, мне не надо, чтобы открывалось активити,...

152
Numeric overflow in expression при складывании String

Numeric overflow in expression при складывании String

С одним все работает, если сложить, то не хочет

174