Estoy pasando argumentos usando safeargs. En el fragmento de recepción recibo un error de compilación: '¿Paquete requerido encontrado?'. No se puede ver dónde se ha deslizado el error.
Busqué en Google, comprobé el texto y el tutorial de udacity
Donde aparece el error (en 'argumentos')
package com.example.android.naveditoryoutube import android.arch.lifecycle.ViewModelProviders import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import kotlinx.android.synthetic.main.fragment_two_fragment.* class FragmentTwo : Fragment() { companion object { fun newInstance() = FragmentTwo() } private lateinit var viewModel: FragmentTwoViewModel override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { return inflater.inflate(R.layout.fragment_two_fragment, container, false) } override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) viewModel = ViewModelProviders.of(this).get(FragmentTwoViewModel::class.java) } override fun onStart() { super.onStart() var args = FragmentTwoArgs.fromBundle(arguments) argText.text = args.calculated_Number } }Código de envío:
package com.example.android.naveditoryoutube import android.arch.lifecycle.ViewModelProviders import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button import androidx.navigation.Navigation import kotlinx.android.synthetic.main.fragment_one_fragment.* class FragmentOne : Fragment() { companion object { fun newInstance() = FragmentOne() } private lateinit var viewModel: FragmentOneViewModel override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { return inflater.inflate(R.layout.fragment_one_fragment, container, false) } override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) viewModel = ViewModelProviders.of(this).get(FragmentOneViewModel::class.java) var calculated_Number : String = viewModel.sendNewNumber().toString() button_calculate.setOnClickListener{view: View -> if (number_box.text.isNotEmpty()){ var number_entered: String = number_box.text.toString() viewModel.findNewNumber((number_entered)) calculated_Number = viewModel.sendNewNumber() Navigation.findNavController(view).navigate(FragmentOneDirections.actionFragmentOneToFragmentTwo(calculated_Number)) } } } }Aparece un error aquí var args = FragmentTwoArgs.fromBundle(argumentos)
Se espera que los argumentos sean Bundle, pero ¿es Bundle?
Tuve que cambiarlo para usar !!
var args = FragmentTwoArgs.fromBundle(argumentos!!)
¡use requireArguments() en lugar de arguments!!
intente usar requireArguments() en lugar de argumentos
var args = FragmentTwoArgs.fromBundle(requireArguments())