Управление View фрагмента из Activity

354
25 февраля 2017, 04:11

Сделал как примере, до вкладок, вкладки не нужны:

https://habrahabr.ru/post/236567/

Но там не подсказали для новичков как теперь обратиться к элементам в фрагменте. Читал примеры, пробовал, но что то идет не так. Может проблема что примеры для андроид выше v4.

Как теперь обратиться к элементам которые в фрагменте screen_one? Как например обработать в NumberPicker и установить минимальные и максимальные значения и обработать событие OnValueChangeListener из mainActivity?

Понимаю что для новичков, но не могу понять. Читал примеры обращения из главной активности к фрагменту, но к данному конкретному случаю применить не получается...

Как обратиться из самого фрагмента я разобрался:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.screen_one, container, false);
  //  numberPicker.findViewById(R.id.light_on_hour);
    NumberPicker light_on_hours = (NumberPicker) rootView.findViewById(R.id.light_on_hour);
    light_on_hours.setEnabled(true);
    light_on_hours.setMinValue(0);
    light_on_hours.setMaxValue(23);
    light_on_hours.setValue(10);
    return rootView;
}

Подскажите как из активности обращаться и листенеры в активности перехватывать или передавать в активность. И как из активности менять значения.

Answer 1

Все, разобрался. Если привязываться к конкретно данному примеру ссылка на который сверху, то чтобы вызвать элемент View из фрагмента(пример для NumberPicker):

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.screen_one, container, false);
  //  numberPicker.findViewById(R.id.light_on_hour);
    NumberPicker light_on_hours = (NumberPicker) rootView.findViewById(R.id.light_on_hour);
    light_on_hours.setEnabled(true);
    light_on_hours.setMinValue(0);
    light_on_hours.setMaxValue(23);
    light_on_hours.setValue(10);
    return rootView;
}

Если из активности:

FragmentManager fragmentManager = getSupportFragmentManager();
ScreenOne screen_one = (ScreenOne) fragmentManager.findFragmentById(R.id.content_frame);
if (screen_one != null){
((TextView) screen_one.getView().findViewById(R.id.text_light_on))
                                                    .setText("Access to Fragment 1 from Activity");
 }
READ ALSO
Импорт JS для страниц отдельно

Импорт JS для страниц отдельно

Всем привет! Имеется такая структура:

219
Добавить тег в середине строки

Добавить тег в середине строки

Здравствуйте! Может быть это тупой вопрос, но все жеУ меня есть div, в нем ul там li и внем p

278
Шаблон сайта на node.js

Шаблон сайта на node.js

Подскажите, как шаблон сайта (html+css с картинками) натянуть на node+express ? Порекомендуйте инструкцию, туториал

690