Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何提取动态广播的意图_Java_Android_Broadcastreceiver_Broadcast - Fatal编程技术网

Java 如何提取动态广播的意图

Java 如何提取动态广播的意图,java,android,broadcastreceiver,broadcast,Java,Android,Broadcastreceiver,Broadcast,我使用一个动态广播接收器从一个单独的类接收广播,该类发送一个列表作为其目的。问题是,在接收时,意图是无效的。这是我使用的意图过滤器类型的结果吗 广播来源 private void sendToUI(List tweets) { Intent intent = new Intent("tweet_result"); //tweet_result is a string to identify this intent Bundle bundle = new Bun

我使用一个动态广播接收器从一个单独的类接收广播,该类发送一个列表作为其目的。问题是,在接收时,意图是无效的。这是我使用的意图过滤器类型的结果吗

广播来源

  private void sendToUI(List tweets) {
        Intent intent = new Intent("tweet_result"); //tweet_result is a string to identify this intent
        Bundle bundle = new Bundle();
        bundle.putParcelableArrayList("data", (ArrayList<? extends Parcelable>) tweets);
        intent.putExtras(bundle);
        sendBroadcast(intent);
    }
private void sendToUI(列出tweets){
Intent Intent=new Intent(“tweet_result”);//tweet_result是标识此意图的字符串
Bundle=新Bundle();

bundle.putParcelableArrayList(“数据”),(ArrayList您只需修复一些事情

@Override
public void onStart() {
    super.onStart();
    IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
    filter.addAction("tweet_result");
    getActivity().registerReceiver(receiver, filter);


}

private BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        List<tweet> tweets = (List<tweet>)
     intent.getParcelableArrayList("data");

        if (tweets == null) {
            tweets_results.setText("No tweets");
            return;
        } else {
            for (tweet tweet : tweets) {
                String content = "";
                content += "Created at: " + tweet.getCreated_at() + "\n";
                content += "Text: " + tweet.getText() + "\n";
                content += "Retweets: " + tweet.getRetweet_count() + "\n";
                content += "Favs: " + tweet.getFavorite_count() + "\n\n";
                tweets_results.append(content);
            }
        }
    }
};
@覆盖
public void onStart(){
super.onStart();
IntentFilter筛选器=新的IntentFilter(ConnectionManager.CONNECTIVITY_操作);
filter.addAction(“tweet_结果”);
getActivity().registerReceiver(接收器、过滤器);
}
private BroadcastReceiver=新的BroadcastReceiver(){
@凌驾
公共void onReceive(上下文、意图){
列表推文=(列表)
intent.getParcelableArrayList(“数据”);
如果(tweets==null){
tweets_results.setText(“无tweets”);
返回;
}否则{
用于(tweet-tweet:tweets){
字符串内容=”;
内容+=”创建于:“+tweet.getCreated_at()+”\n”;
content+=“Text:”+tweet.getText()+“\n”;
content+=“Retweets:”+tweet.getRetweet\u count()+“\n”;
content+=“Favs:”+tweet.getFavorite\u count()+“\n\n”;
tweets_results.append(内容);
}
}
}
};

进行此更改后
List tweets=(List)intent.getParcelableArrayList(“数据”);
我得到错误
无法解析方法getParcelableArrayList(java.lang.string)
。您认为应该是
List tweets=(List)intent.getParcelableArrayListExtra(“数据”)吗
?也就是说,当我尝试我的上述建议时,我得到了一个单独的错误
无法将'java.util.ArrayList'转换为'java.util.List'
`intent.getParcelableArrayListExtra(“数据”)`;像这样尝试一下在做了一些轻微的修改之后,这已经奏效了。
列表tweets=new ArrayList();tweets=intent.getParcelableArrayListExtra(“数据”);
@Override
public void onStart() {
    super.onStart();
    IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
    filter.addAction("tweet_result");
    getActivity().registerReceiver(receiver, filter);


}

private BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        List<tweet> tweets = (List<tweet>)
     intent.getParcelableArrayList("data");

        if (tweets == null) {
            tweets_results.setText("No tweets");
            return;
        } else {
            for (tweet tweet : tweets) {
                String content = "";
                content += "Created at: " + tweet.getCreated_at() + "\n";
                content += "Text: " + tweet.getText() + "\n";
                content += "Retweets: " + tweet.getRetweet_count() + "\n";
                content += "Favs: " + tweet.getFavorite_count() + "\n\n";
                tweets_results.append(content);
            }
        }
    }
};