es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pasando datos desde un fragmento a MainActivity con TabLayout y Adapter – aplicación Android en Kotlin.

Necesito ayuda con la siguiente situación.
Tengo un fragmento, adaptador y una actividad principal. Utilizo el fragmento y el adaptador para el tablayout.
Estoy tratando de pasar datos desde un edittext en el fragmento a la actividad.

Cuando uso Intent para pasar los datos del fragmento a la actividad principal, la aplicación se bloquea.
¿Existe alguna otra posibilidad de pasar datos como a través del adaptador a la actividad principal?

class person : Fragment() {


    lateinit var Sname : EditText



    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

    }



    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        // Inflate the layout for this fragment

        return inflater.inflate(R.layout.fragment_person, container, false)
    }


    override fun onViewCreated(view: View, state: Bundle?) {
        super.onViewCreated(view, state)

        Sname= view.findViewById(R.id.snamedittext)

        senddata()

    }



private fun  senddata() {

    var name = Sname.toString()


   val intent = Intent(activity,personactivity::class.java)
   intent.putExtra("name", name)

    startActivity(intent)

}

}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema se produce al intentar pasar directamente el EditText dentro del Intent como una cadena de texto. En su lugar, deberías obtener el texto del EditText y pasarlo como una cadena de texto:

    private fun sendData() {
        val name = Sname.text.toString()
        val intent = Intent(activity, PersonActivity::class.java)
        intent.putExtra("name", name)
        startActivity(intent)
    }
    

    En cuanto a pasar datos a través del adaptador, depende de tu caso de uso específico. Si los datos están relacionados con una pestaña o elemento específico en el adaptador, puedes pasarlos a través del onClickListener o la interfaz implementada por el adaptador. Si los datos no están relacionados con un elemento específico, aún puedes pasarlos a través del adaptador configurando una variable pública en la instancia de MainActivity y accediendo a ella desde el adaptador. Sin embargo, pasar datos directamente desde el fragmento al adaptador puede que no sea el mejor enfoque, ya que rompe la separación de responsabilidades entre la interfaz de usuario y la lógica empresarial.

Comments are closed.