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 ответов

126 просмотров

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

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

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

ну студия сама ее там создает если в скобка указать листенер через 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
А с чего ты взял что доступ к вью фрагмента происх...

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Oh sorry did you want it in Gunter's chains?
Martin Rys
15
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта