2010-10-11 18 views
40

Estoy tratando de pasar datos entre dos actividades que están dentro de las pestañas. Estoy tratando de usar el envíoBroadcast. Con los puntos de inflexión establecidos nunca alcanzo el OnReceive.Cómo enviar y recibir mensajes de difusión

manifiesta:

<activity 
    android:name=".WebResults" 
    android:label="@string/app_name"> 

    <intent-filter> 
     <action android:name="com.toxy.LOAD_URL" /> 
    </intent-filter>   
</activity> 

remitente Actividad:

Intent intent=new Intent(getApplicationContext(),WebResults.class); 
intent.setAction("com.toxy.LOAD_URL"); 
intent.putExtra("url",uri.toString()); 
sendBroadcast(intent); 

Actividad Receptor:

@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); 
    } 
} 
+0

Ponga todo en una actividad, en lugar de usar actividades separadas para las pestañas, y ya no tendrá que intentar usar transmisiones para comunicarse entre ellas. – CommonsWare

Respuesta

35

que estaba teniendo el mismo problema que tú, pero me di cuenta de:

Eliminar el en filtro de tienda de campaña desde el manifiesto y cambiar

Intent intent=new Intent(getApplicationContext(),WebResults.class);

para

Intent intent=new Intent();

espero que ayude!

7

Utilice

intent.getStringExtra(""); 

y

new Intent(); 

trabajado para mí.

+0

Gracias por la pista con el constructor vacío, casi me vuelvo loco .. –

Cuestiones relacionadas