2010-10-11 37 views
40

Tôi đang cố truyền dữ liệu giữa hai hoạt động nằm trong các tab. Tôi đang cố gắng sử dụng sendBroadcast. Với breakpoints thiết lập tôi không bao giờ đạt được OnReceive.Cách gửi và nhận tin nhắn quảng bá

manifest:

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

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

Hoạt động Tên người gửi:

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

Hoạt động reciever:

@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

Đặt mọi thứ vào một hoạt động, thay vì sử dụng các hoạt động riêng biệt cho các tab và bạn sẽ không còn cần phải cố gắng sử dụng chương trình phát sóng để giao tiếp giữa chúng. – CommonsWare

Trả lời

35

Tôi đã gặp vấn đề tương tự như bạn, nhưng tôi đã tìm ra:

Xóa trong lều lọc từ các biểu hiện và thay đổi

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

cho

Intent intent=new Intent();

Hy vọng nó sẽ giúp!

7

Vui lòng sử dụng

intent.getStringExtra(""); 

new Intent(); 

Làm việc cho tôi.

+0

Cảm ơn gợi ý với nhà xây dựng trống, tôi gần như đã phát điên .. –

Các vấn đề liên quan