toxa_1995
@toxa_1995
Начинающий...

В каком классе писать код для взаимодействия с кнопкой?

Есть три таба фрагмента:
public class TabOne extends Fragment{
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.tab_one, container, false);
    }
}

public class TabThree extends Fragment{
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.tab_three, container, false);
    }
}

public class TabTwo extends Fragment{
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.tab_two, container, false);
    }
}


И их xml, соответственно, только для первого:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</RelativeLayout>


В каком месте писать код для взаимодействия с кнопкой, которую установлю в xml файл?
В самих классах табов?
  • Вопрос задан
  • 800 просмотров
Пригласить эксперта
Ответы на вопрос 3
@ramazan793
В самих классах табов. Создай переменную кнопки используя findViewById(). Затем используй для нее onClickListener().
Пример:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // тут код, который будет срабатывать при нажатии кнопки
    }
});
Ответ написан
Комментировать
@Axe98
Junior Programmer
Создай глобальный объект типа View и вначале onCreateView присвой к нему то, что сейчас возвращает эта функция, чтобы дальше в теле класса юзать его.

View tabView;
.......
/// onCreateView begin
tabView = inflater.inflate(R.layout.tab_three, container, false);
.......
return tabView;
/// onCreateView end


И дальше юзай так:
Button btnOk = (Button) tabView.findViewById(R.id.any);
btnOk.setText("ok");
Ответ написан
Комментировать
@red-barbarian
Какой именно код?
Если повесить просто обработку клика, то можно в onCreateView. Если что-то сложное - т.е. взаимодействие со сложной бизнес логикой и использование данных из модели , то использовать паттерн MVP. Если взаимодействие между фрагментами, то в активити.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы