Из ваших комментариев сейчас стало более понятно, что вы пытаетесь сделать.Fragment
сильно зависит от Activity
, на самом деле он не может оставаться в одиночестве, и любая реализация интерфейса будет перехвачена во время onAttach()
, контекст Fragment
равен Activity
, поэтому, если Activity
не реализует интерфейссбой произойдет в onAttach()
во фрагменте.
Но в вашем сценарии у вас есть два разных Activities
, поэтому в этом случае вы можете передавать данные, используя Bundle
или BroadcastReceiver
.Чтобы использовать BroadcastReciver
, создайте метод внутри вашего Fragment
:
private void registerReciver() {
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null) {
String getData = intent.getStringExtra("data");
}
}
};
IntentFilter intentFilter = new IntentFilter("action");
this.registerReceiver(receiver, intentFilter);
}
Вызовите registerReciver();
в вашем фрагменте onCreate()
метод.Теперь со второго Activity
, где он закрывается, запускается BroadcastReceiver
, отправляющий некоторые данные:
Intent intent = new Intent();
intent.putExtra("data", "some data");
intent.setAction("action");
this.sendBroadcast(intent);
Второй способ, который также должен работать в вашем методе Fragment
override onResume
, который будет вызываться послеваша Activity
секунда Activity
заканчивается.В Activity
введите данные в Bundle
, например:
Addorder fragment = new Addorder();
Bundle bundle = new Bundle();
bundle.putString("data", "Some data");
fragment.setArguments(bundle);
Чем внутри Fragment
в onResume()
метод получить данные:
Bundle bundle = this.getArguments();
if (bundle != null) { //to prevent crash must check against null
String getData = bundle.getString("data", defaultValue);
}
Я думаю, что оба способа должны работать