Невозможно привести объект в предмет продажи - PullRequest
0 голосов
/ 26 августа 2018

У меня есть Intent услуга. В onHandleIntent я хочу поместить объект типа List<Trends> в Intent, чтобы я мог отправить это намерение через sendBroadcast, как показано в коде ниже.

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я помещаю объект списка в 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

Ответы [ 3 ]

0 голосов
/ 26 августа 2018

Метод putParcelable() используется здесь неправильно. Этот метод можно использовать для сохранения одного объекта класса, который реализует интерфейс Parcelable. Чтобы сохранить массив, вам нужно использовать метод putParcelableArrayList().

0 голосов
/ 26 августа 2018

Если вам нужно передать ArrayList, я бы пошел с реализацией Parcelable

0 голосов
/ 26 августа 2018

Вы можете помещать только объекты классов, которые реализуют Parcelable.

Для получения дополнительной информации прочитайте это .

...