簡體   English   中英

你如何將 ArrayList 的字符串放入 Android Java 的 Parcelable 中?

[英]How do you put/read an ArrayList of Strings into Parcelable in Android Java?

我使用 Android Studio 並嘗試創建一個可打包的 class,其中包含四個字段:表示 Object 名稱的字符串,表示人名的字符串 arraylist,表示對象的字符串 arraylist,表示對象的字符串 88178588976地方(這實際上是一個 cluedo 游戲配置,如果讀者對此感興趣的話)。 我在將 arraylists 添加到 Parcel 時遇到了問題。

目前我使用Parcel.readArrayList(String.class.getClassLoader()); 得到一個 ArrayList 和Parcel.writeStringList(ArrayList<String>); 放一個 ArrayList。然而,Android Studio 給了我一個警告Unchecked assignment: 'java.util.ArrayList to java.util.ArrayList<java.lang.String>'

請告訴我我做錯了什么以及如何正確地做。

package com.example.cluedoservice;

import android.os.Parcel;
import android.os.Parcelable;

import java.util.ArrayList;
import java.util.Arrays;

public class configInfo implements Parcelable {
    protected String name = "default";
    protected ArrayList<String> people, things, places;

    protected configInfo(String name, ArrayList<String> people,
                         ArrayList<String> things, ArrayList<String> places) {
        this.name = name;
        this.people = people;
        this.things = things;
        this.places = places;
    }

    protected configInfo(Parcel in) {
        name = in.readString();
        people = in.readArrayList(String.class.getClassLoader());
        things = in.readArrayList(String.class.getClassLoader());
        places = in.readArrayList(String.class.getClassLoader());
    }

    @Override
    public void writeToParcel(Parcel out, int i) {
        out.writeString(name);
        out.writeStringList(people);
        out.writeStringList(things);
        out.writeStringList(places);
    }

    public static final Creator<configInfo> CREATOR = new Creator<configInfo>() {
        @Override
        public configInfo createFromParcel(Parcel in) {
            return new configInfo(in);
        }

        @Override
        public configInfo[] newArray(int size) {
            return new configInfo[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }
}

看一下這個

people = in.createStringArrayList();
things = in.createStringArrayList();
places = in.createStringArrayList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM