J'essaie de transmettre des données entre deux activités qui se trouvent à l'intérieur des onglets. J'essaie d'utiliser sendBroadcast()
. Avec des points d'arrêt définis, je n'atteins jamais onReceive()
.
Manifeste:
<activity
Android:name=".WebResults"
Android:label="@string/app_name">
<intent-filter>
<action Android:name="com.toxy.LOAD_URL" />
</intent-filter>
</activity>
Expéditeur de l'activité:
Intent intent=new Intent(getApplicationContext(),WebResults.class);
intent.setAction("com.toxy.LOAD_URL");
intent.putExtra("url",uri.toString());
sendBroadcast(intent);
Récepteur d'activité:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter filter = new IntentFilter("com.toxy.LOAD_URL");
this.registerReceiver(new Receiver(), filter);
}
private class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
String url = arg1.getExtras().getString("url");
WebView webview =(WebView)findViewById(R.id.webView);
webview.loadUrl(url);
}
}
J'avais le même problème que toi, mais j'ai compris:
Supprimez le filtre d'intention du manifeste et modifiez
Intent intent=new Intent(getApplicationContext(),WebResults.class);
for
Intent intent=new Intent();
J'espère que ça aide!
Veuillez utiliser
intent.getStringExtra("");
et
new Intent();
A travaillé pour moi.