1

私のアプリケーションでは、arrayList に値を追加したいのですが、追加された項目が arrayList の最初の項目になるようにしたいと考えています。私はこのコードを使用します

Sphere[] spheres = new ObjectMapper().readValue(response.getJSONArray("data").toString(),Sphere[].class);
                mSphereList = Arrays.asList(spheres);
                Sphere sphere = new Sphere();
                sphere.setId(0);
                sphere.setTitle("All");
                mSphereList.add(0,sphere);
                mListView.setAdapter(new CategoryAdapter(CategoryActivity.this,mSphereList));

アプリケーションを実行すると例外が発生しました

ERROR/AndroidRuntime(25878): FATAL EXCEPTION: main
        java.lang.UnsupportedOperationException
        at java.util.AbstractList.add(AbstractList.java:404)

ここで私が間違ったこと。ここで良い解決策を教えていただけませんか?

4

3 に答える 3

5

Arrays.asList()ArrayList を返しません。元の配列に裏打ちされた、固定サイズのリストを返します (ドキュメントに記載されています)。

実際の ArrayList を作成する必要があります:

mSphereList = new ArrayList<>(Arrays.asList(spheres));
于 2013-11-11T12:24:58.327 に答える
0

Arrays.asList()固定サイズのリストが返されるため、追加が失敗します。以下を使用する必要があります。

mSphereList = new ArrayList<>(Arrays.asList(spheres));
于 2013-11-11T12:25:52.580 に答える