Не удается передать данные поля редактирования в поле textviewfield в окне просмотра

#android #android-viewpager #android-tablayout

Вопрос:

Я внедряю приложение, подобное приведенному по адресу: https://www.simplifiedcoding.net/android-tablayout-example-using-viewpager-fragments/

В дополнение к приведенной выше компоновке. Я добавил текстовое поле редактирования сверху с кнопкой «Показать» рядом с ним. Теперь, когда я нажимаю кнопку «Показать», я передаю текстовое значение, присутствующее в поле редактирования, т. Е. в поле редактирования написано «Отлично», поэтому я изменяю его на Tab1-Отлично, Tab2-Отлично, передаю его в функцию ViewPager и устанавливаю его в textview на соответствующих вкладках и уведомляю об изменении. Но информация не обновляется в текстовом представлении на разных вкладках.

Пожалуйста, ведите.

Код, относящийся к основной деятельности:

«‘ Адаптерстраницы = новый адаптерстраницы(getSupportFragmentManager(),TabLayout.getTabCount(), mEdit.getText().toString()); ViewPager.setAdapter(адаптерстраницы); «‘ релевантный код адаптера страницы:

«‘ общедоступный фрагмент GetItem(int позиция) { переключатель(позиция) { случай 0: ftb1 = новый ftab1(медитация); возврат ftb1; } } «‘

Код вкладки: «‘Общедоступный класс ftab1 расширяет фрагмент {

 private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
private static String passedparam="Default";

// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;



public ftab1(String searchText) {
    
        passedparam = locapassedparam;

   }


// TODO: Rename and change types and number of parameters
public static ftab1 newInstance(String param1, String param2) {
    ftab1 fragment = new ftab1(passedparam);
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View myView = inflater.inflate(R.layout.fragment_ftab1, container,  false);

    //textview related code


   return myView;
}
 

}»’

Ответ №1:

вы должны, по крайней мере, опубликовать изображение или свой код в tablayout, каждая вкладка представляет собой фрагмент, поэтому, если вы хотите передать строку между фрагментами, вы можете использовать намерение или использовать интерфейс(триггер при нажатии кнопки), как только вы передали переменную, вы можете просто установить ее в textview методом «onTabSelected». есть много учебников, просто найдите

Комментарии:

1. Я отредактировал свой вопрос, чтобы добавить код. В то время как OnTabSelected я использую следующий код: «‘ TabLayout.setOnTabSelectedListener(новая таблица. OnTabSelectedListener() { @Переопределить публичную пустоту onTabSelected(TabLayout. Вкладка вкладка) { ViewPager.setCurrentItem(вкладка.GetPosition()); } «‘