Répondre à un peu tard, mais il y a une autre façon, vous pouvez le faire que je pouvais penser: Diffusions locales
Vous pouvez utiliser un gestionnaire LocalBroadcast et un BroadcastListener dans l'activité, et envoyer un LocalBroadcast de la popupWindow:
Dans l'activité principale vous pouvez faire:
LocalBroadcastManager localBroadcastManager =
LocalBroadcastManager.getInstance (getApplicationContext());
BroadcastReceiver popupdatareceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
...
// code to handle received data goes here
}
}
};
localBroadcastManager.registerReceiver (popupdatareceiver, new IntentFilter ("popupdata"));
de l'popupWindow vous pouvez envoyer une diffusion locale comme ceci:
Intent popupdataIntent = new Intent ("popupdata");
Bundle popupdataBundle = new Bundle();
...
// now add your data to the Bundle here
...
popupdataIntent.putExtra ("popupdata", popupdataBundle);
Pour envoyer les données à l'activité, vous auriez besoin d'initialiser une instance LocalBroadcastManager et déclencher une émission - ce qui pourrait être déclenchée par OnClickListener d'un bouton, ou par le OnDismissListener du popupWindow
LocalBroadcastManager newLocalBroadcastManager =
LocalBroadcastManager.getInstance (getApplicationContext());
newLocalBroadcastManager.sendBroadcast (popupdataIntent);
Qu'en est-il du cas alors l'information dans l'activité est nécessaire par le poupwindow ou le fragment? Can ((Activité) getActivity()). FunctionCall(); travaille ici? – kilokahn