169 похожих чатов

Всем привет. Использую фрагменты, и на самой активити хочу накинуть

листенер, чтобы по нажатию в контейнере менялся фрагмент, но никак не могу получить к нему доступ. Подскажите в чем может быть проблема?
Код:
package com.example.microgatgetsnew2;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatButton;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentContainerView;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.ViewPager;

import android.app.Dialog;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

FragmentContainerView fragmentContainerViewHeader, fragmentContainerViewMenu, fragmentContainerViewMain;
TextView textViewCatalog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

fragmentContainerViewMain = findViewById(R.id.fragment_container_view_main);
fragmentContainerViewHeader = findViewById(R.id.fragment_container_view_header);
fragmentContainerViewMenu = fragmentContainerViewHeader.findViewById(R.id.fragment_container_view_menu);
textViewCatalog = fragmentContainerViewMenu.findViewById(R.id.textViewKatalog);

textViewCatalog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
transaction.setReorderingAllowed(true);

transaction.replace(R.id.fragment_container_view_main, CatalogFragment.class, null);
transaction.commit();
}
});
}
}
Разметка активити:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity"
android:background="@color/background"
android:scrollbars="none">

<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container_view_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:name="com.example.microgatgetsnew2.HeaderFragment"/>

<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container_view_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/fragment_container_view_header"
android:name="com.example.microgatgetsnew2.MainFragment"/>

</androidx.constraintlayout.widget.ConstraintLayout>

7 ответов

66 просмотров

Братишка, в следующий раз для такого обьема кода используй ГитХаб репку и выучи уже Котлин, а то километры этого шлака тяжко читать )

А зачем функция онклик в сетонклик листенере?

Виктор-Васильев Автор вопроса
Капитан Шимпанзе
А зачем функция онклик в сетонклик листенере?

ну студия сама ее там создает если в скобка указать листенер через new

xyu.setOnClickListener { openFrag(fragment_1.newInstance(), R.id.fragment_id) } private fun openFrag(f: Fragment, idHolder:Int) { supportFragmentManager .beginTransaction().replace(idHolder, f) .commit() }

А с чего ты взял что доступ к вью фрагмента происходит через контейнер

Виктор-Васильев Автор вопроса
Di7aK
А с чего ты взял что доступ к вью фрагмента происх...

ну фрагмент отображается через контейнер, контейнер связан с вью - получилось предположение. Методов, который возвращают именно вью у контейнера не нашел(может быть плохо искал) решил делать так

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

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Карта сайта