Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ParentFragment.kt
- package ru.alexandrkozlovskiy.fragmentissue
- import android.os.Bundle
- import androidx.fragment.app.Fragment
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import android.widget.Button
- import android.widget.TextView
- import android.widget.Toast
- import androidx.core.os.bundleOf
- import androidx.core.view.isVisible
- class ParentFragment : Fragment() {
- private lateinit var test: Button
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- childFragmentManager.setFragmentResultListener("", this) { key, bundle ->
- test.isVisible = false
- Toast.makeText(context, "information received from child fragment", 1).show()
- childFragmentManager.setFragmentResult("", bundleOf(Pair("word", "test")))
- }
- }
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
- val view = inflater.inflate(R.layout.fragment_parent, container, false)
- test = view.findViewById(R.id.test) as Button
- val fragment: ChildFragment = ChildFragment()
- childFragmentManager.beginTransaction().replace(R.id.childcontainer, fragment, "child").commit()
- return view
- }
- }
- //ChildFragment.kt
- package ru.alexandrkozlovskiy.fragmentissue
- import android.os.Bundle
- import androidx.fragment.app.Fragment
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import android.widget.TextView
- import android.widget.Toast
- import androidx.core.os.bundleOf
- class ChildFragment : Fragment() {
- private lateinit var childView: TextView
- private fun sendInfoToParentFragment() {
- parentFragmentManager.setFragmentResult("", bundleOf(Pair("word", "child")))
- }
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- parentFragmentManager.setFragmentResultListener("", this) { key, bundle ->
- Toast.makeText(context, "Receiving information from parent fragment", 1).show()
- }
- sendInfoToParentFragment()
- }
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- val view = inflater.inflate(R.layout.fragment_child, container, false)
- childView = view.findViewById(R.id.childtest) as TextView
- childView.setOnClickListener {
- sendInfoToParentFragment()
- }
- return view
- }
- }
- //MainActivity.kt
- package ru.alexandrkozlovskiy.fragmentissue
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- class MainActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- val fragment:ParentFragment= ParentFragment()
- supportFragmentManager.beginTransaction().replace(R.id.maincontainer,fragment,"parent").commit()
- }
- }
- //build.gradle
- plugins {
- id 'com.android.application'
- id 'kotlin-android'
- }
- android {
- compileSdkVersion 30
- buildToolsVersion "30.0.3"
- defaultConfig {
- applicationId "ru.alexandrkozlovskiy.fragmentissue"
- minSdkVersion 16
- targetSdkVersion 30
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
- kotlinOptions {
- jvmTarget = '1.8'
- }
- }
- dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- implementation 'androidx.core:core-ktx:1.3.2'
- implementation 'androidx.appcompat:appcompat:1.2.0'
- implementation 'com.google.android.material:material:1.2.1'
- implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
- implementation 'androidx.fragment:fragment:1.3.0-rc01'
- implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- testImplementation 'junit:junit:4.+'
- androidTestImplementation 'androidx.test.ext:junit:1.1.1'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
- }
Add Comment
Please, Sign In to add comment