Мой прослушиватель результатов фрагмента не обновляет текстAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Мой прослушиватель результатов фрагмента не обновляет текст

Сообщение Anonymous »

Я пытаюсь заставить свое приложение отображать разный текст при каждом нажатии кнопки. При первом нажатии любой кнопки все работает нормально, но после слов мои текстовые представления фрагмента возвращаются к тексту по умолчанию, который я установил в XML-файле макета. Вот код кнопок, а также функция, которую я использую для загрузки данных во фрагмент:

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

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

String title = "Bildad Kaggia";
String history = "Bildad Mwaganu Kaggia (1921 – 7 March 2005) was a Kenyan nationalist, activist, and politician. Kaggia was a member of the Mau Mau Central Committee. After independence he became a Member of Parliament. He established himself as a militant, fiery nationalist who wanted to serve the poor and landless people. Because of this he fell out irreconcilably with Jomo Kenyatta. ";
ReplaceFragment(new gridLayout(),title, history);
}
});
Вот функция replaceFragment:

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

public void ReplaceFragment (Fragment fragment, String title, String history){

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();

fragmentManager.clearFragmentResult("history");
fragmentManager.clearFragmentResult("title");
Bundle hstry = new Bundle();
hstry.putString("hstry",history);
Bundle tl = new Bundle();
tl.putString("tl",title);

fragmentManager.setFragmentResult("history",hstry);
fragmentManager.setFragmentResult("title",tl);
fragmentTransaction.replace(R.id.frameLayout,fragment);
fragmentTransaction.commitNow();
}
А вот мой фрагмент кода:

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

View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_grid_layout, container, false);

getParentFragmentManager().setFragmentResultListener("title", this, new FragmentResultListener() {
@Override
public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
TextView tv1 = view.findViewById(R.id.tvTitle);
String tl=result.getString("tl");
tv1.setText(tl);
}
});
getParentFragmentManager().setFragmentResultListener("history", this, new FragmentResultListener() {
@Override
public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
TextView tv2 = view.findViewById(R.id.tvHistory);
String hs = result.getString("hstry");
tv2.setText(hs);
}
});
return view;
}
Результаты:
[img]https://i.sstatic. net/IxE83l1W.jpg[/img]

Изображение


Подробнее здесь: https://stackoverflow.com/questions/787 ... e-the-text
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»