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

130 просмотров

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно 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
Карта сайта