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

75 просмотров

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

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

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

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

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Какой дос блять?
007
9
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
Карта сайта