Приветствую, пытался реализовать настройки, иерархия получилась большая.
У меня в главной активити есть TextView, в этой активити я вызываю DialogFragment, DialogFragment содержит в себе RecyclerView который отображает список настроек через свой адаптер. В этом адаптере я реализовал метод onClick в котором вызываю AlertDialog:
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
AlertDialog.Builder alt_bld = new AlertDialog.Builder(view.getContext());
Получилось так: MainActivity/DialogFragment/RecyclerViewAdapter/AlertDialog
Вопрос: Как мне из моего AlertDialoga поменять, например, размер моего TextView в главной активити?
Есть стандартный паттерн взаимодействия фрагмента с Activity или другими фрагментами.
Он заключается в том, чтобы во фрагменте должен быть декларирован интерфейс, который имплементируется тем, кто хочет взаимодействовать с фрагментом, типа:
public class MyFragment extends Fragment {
//blah-blah
public interface MyFragmentListener {
public void onFragmentSomethingHappens();
public void onFragmentYetAnotherHappens();
}
}
В Activity или другом фрагменте делаем так
public class MyActivity extends Activity implements MyFragment.MyFragmentListener {
//blah-blah
public void onFragmentSomethingHappens() {
//blah-blah
}
}
Собственно говоря все. При создании адаптера, получить ссылку на фрагмент, это достаточно просто, далее вызываем метод интерфейса фрагмента, по которому в Activity что-то происходит - в вашем случае изменение размера TextView
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости