1

Тема: Надсилання даних з Activity до Fragment

Намагаюся надіслати дані з Activity до Fragment використовуючи BroadcastReceiver, але безрезультатно. В мережі є багато інформації про те як зробити це, створюючи новий екземпляр Fragment, але мені це не підходить бо мені потрібно оновити тільки частину UI Fragment.
Роблю це так:
У Fragment, методі onCreate():

protected DataReceiver dataReceiver;
public static final String RECDATA = "RECDATA";

@Override
public void onCreate(Bundle savedInstanceState) {


    dataReceiver = new DataReceiver();
    intentFilter = new IntentFilter(RECDATA);

    getActivity().registerReceiver(dataReceiver, intentFilter);
}

private class DataReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        int data= intent.getIntExtra("data", -1);

        // щось роблю з UI
    }
}

В Activity

Intent retIntent = new Intent(REDATA);
retIntent.putExtra("data", myData);
sendBroadcast(retIntent);

Якщо хтось бачить помилку, або може має ідею як це зробити іншим шляхом - тицніть носом де про це можна прочитати..

2 Востаннє редагувалося PRY (19.05.2018 15:48:21)

Re: Надсилання даних з Activity до Fragment

Було б зручніше, якби побачити весь текст - включно з AndroidManifest.xml.
Якщо є можливість,- зручніше на GitHub.
Використовував BroadcastReceiver для прийому повідомлень з іншого app. В цьому випадку працює нормально.

3 Востаннє редагувалося PRY (23.05.2018 16:45:04)

Re: Надсилання даних з Activity до Fragment

Можу запропонувати інший спосіб, який узгоджується з вимогами до архітектури Андроід-додатків . Простий приклад можна клонувати або стягнути .zip архів тут:
https://github.com/MikhalUkr/Sharing_da … d_Fragment
Для цієї мети використовується спільний для обох - Activity та Fragment, ViewModel з LiveData -один з архітектурних компонентів, презентованих Google на I/O 2017.
Спосіб доволі простий і прозорий. Організовується легко як одно, так і багатостороння передача інформації як між Activity та Fragment, так і між самими Fragments в рамках цього Activity.

Подякували: andriesko1