Как передать данные в активность из фрагмента? - PullRequest
0 голосов
/ 05 октября 2019

Я хочу отправить данные из фрагмента в действие, но мой текущий код не работает.

    TextView mTituloTv=view.findViewById(R.id.titulo_producto_regis);
    TextView mSubTituloTv=view.findViewById(R.id.subtitulo_producto_regis);
    TextView mPrecioTv=view.findViewById(R.id.precio_producto_regis);
    TextView mDescripcionTv=view.findViewById(R.id.descripcion_producto_regis);

    String mTitulo=mTituloTv.getText().toString();
    String mSubTitulo=mSubTituloTv.getText().toString();
    String mPrecio=mPrecioTv.getText().toString();
    String mDescripcion=mDescripcionTv.getText().toString();

    Intent intent=new Intent(getContext(),Producto_Detallado.class);

    intent.putExtra("mtitulo",mTitulo); 
    intent.putExtra("mdescripcion",mDescripcion); 
    intent.putExtra("msubtitulo",mSubTitulo); 
    intent.putExtra("mprecio",mPrecio);

    startActivity(intent);

1 Ответ

0 голосов
/ 05 октября 2019

Вы можете использовать интерфейс для отправки данных из фрагмента в активность. Вы можете создать интерфейс и метод в своем фрагменте: как этот код вашего интерфейса -

interface YourInterface {
fun sendData(data:YourDataMODEL)
}

Это ваш метод - сделать глобальный объект вашего интерфейса во фрагменте

private var listener : YourInterface? = null

fun setListener(yourInterface : YourInterface){
this.listener = yourInterface
}

Вызывайте ваш интерфейсный объект там, где вы хотите - listener.sendData (yourModel)

Когда вы инициализируете свой фрагмент в действии, тогда вызывайте этот метод, используя фрагментный объект -

val fragment = YourFragment()
fragment.setListener(this)

Теперь вы можете реализовать этот интерфейсметод в вашей деятельности, как это:

@override
fun sendData(data : YourDataMODEL){
// Do Something here
}

Я думаю, что это полезно для вас

...