Android SparseArray в классе разделяемых

У меня есть sparseray в моем классе под названием «тест».

«test» реализует «parcelable», и я хочу иметь возможность извлекать свой sparsearray между двумя действиями, когда я передаю объект Test с таким намерением:

    Intent intent = new Intent();
    intent.putExtra("myObjectTest", myObjectTest);

Я вижу, что есть метод writeSparseArray, но он не работает с моим sparsearray.

Мой текущий код:

public Test(Parcel in) {
     this.id = in.readInt();
     // how to get the sparsearray ?
} 

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(this.id);
    // how can I parse my SparseArray ?
}

person deveLost    schedule 11.04.2016    source источник
comment
Какие объекты хранит SparseArray?   -  person Miguel Benitez    schedule 11.04.2016
comment
Это созданный мной класс, который реализует разделяемость.   -  person deveLost    schedule 11.04.2016


Ответы (1)


Вы можете использовать readSparseArray() и writeSparseArray().

Пример:

public Test(Parcel in) {
     this.id = in.readInt();
     in.readSparseArray(OBJECT_STORED.class.getClassLoader());
} 

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(this.id);
    dest.writeSparseArray(mSparseArray);
}

ИЗМЕНИТЬ

поместите пакет в Bundle и поместите этот пакет в намерение

Пример:

Bundle bundle = new Bundle();
bundle.putParcelable("myObjectTest", test);
intent.putExtra("myBundleTest",bundle);    
person Miguel Benitez    schedule 11.04.2016
comment
Нет, я почти пытался, и это не работает, как я сказал. - person deveLost; 11.04.2016
comment
Метод writeSparseArray(SparseArray‹Object›) в типе Parcel неприменим для аргументов (SparseArray‹MyClassParcelable›) - person deveLost; 11.04.2016
comment
Проверьте эту ссылку. Надеюсь, она вам поможет: gist.github.com/kaushikgopal/9eea148a2188dc58fe37 - person Miguel Benitez; 11.04.2016