2016-11-13 13 views
0

List<Question>を他のアクティビティに送信しようとしていますが、「java.util.ArrayListをandroid.os.Parcelableにキャストできません」というエラーが表示されます。Listオブジェクトを別のアクティビティに送信しようとしています

FirstActivity

List<Question> list; 
    list = response.body().items; 
    Intent myIntent = new Intent(SearchActivity.this, RestaurantActivity.class); 
    myIntent.putExtra("restaurants", (Parcelable) list); 
    SearchActivity.this.startActivity(myIntent); 

SecondActivity

Intent intent = getIntent(); 
    List<Question> restaurants = intent.getExtras().getParcelable("restaurants"); 
    textView = (TextView)findViewById(R.id.textView); 
    textView.setText(restaurants.get(0).title); 

問題は何ですか?

答えて

2

ArrayList自体がParcelableインターフェイスを実装していないため動作しません。しかし、IntentBundleのような一部のAndroidクラスは、ArrayListを処理するように設定されています。ただし、含まれるインスタンスはParcelableを実装するクラスである必要があります。

putExtraの代わりにputParcelableArrayListExtraメソッドを使用してみてください。

反対側にはgetParcelableArrayListExtraを使用する必要があります。

これはArrayListでのみ機能し、QuestionクラスではParcelableを実装する必要があることに注意してください。

+0

私はできません、このエラーが表示されます: 間違った第2引数型。見つかった: 'java.util.List '、必須: 'java.util.ArrayList <? android.os.Parcelable> – lolix

+0

Right - 'List'ではなく' ArrayList'を渡していることを確認し、 'Question'は' Parcelable'インターフェースを実装しています。 – clownba0t

関連する問題