我有一个Intent
服务。在onHandleIntent
中,我想将List<Trends>
类型的对象放入一个Intent,以便可以通过sendBroadcast
发送该Intent,如下面的代码所示。
我现在面临的问题是,当我将列表对象放到Bundle
并将其强制转换为Parcelable
时,我收到以下发布的错误。
我的代码:
Intent intentBroadcast = new Intent();
Bundle bundleList = new Bundle();
bundleList.putParcelable("data", (Parcelable) this.mTrendsList); //java.util.ArrayList cannot be cast to android.os.Parcelable
intentBroadcast.putExtra(TwitterTrendsAPIService.CONST_INTENT_KEY, bundleList);
sendBroadcast(intentBroadcast);
错误:
java.lang.ClassCastException: java.util.ArrayList cannot be cast to android.os.Parcelable
at com.example.pc_amr.twittertrendsnearlocation.services.TwitterTrendsAPIService.onHandleIntent(TwitterTrendsAPIService.java:86)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:1
答案 0 :(得分:1)
您只能放置实现Parcelable
的类的对象。
有关更多信息,read this。
答案 1 :(得分:0)
putParcelable()
方法在这里使用错误。此方法可用于保存实现Parcelable
接口的类的单个对象。要保存数组,您需要使用putParcelableArrayList()
方法。
答案 2 :(得分:0)
如果您需要传递ArrayList,那么我将继续实施Parcelable