Nano Hash - криптовалюты, майнинг, программирование

Список объектов равен нулю после передачи через Intent. Класс объекта реализует интерфейс Parcelable

Это мой способ передачи данных из Activity:

   Intent intent = new Intent(JobFieldAttribute.this, JobCamera.class);
   intent.putParcelableArrayListExtra("FieldDataList", fieldDataList);
   startActivity(intent);

Мой класс объекта:

public void writeToParcel(Parcel dest, int flags) {
//Writing to parcel
}   

public static final Parcelable.Creator<FieldData> CREATOR = new Parcelable.Creator<FieldData>() {
    @Override
    public FieldData createFromParcel(Parcel in) {
        FieldData fieldData = new FieldData();
        fieldData.id = in.readInt();
        Log.i("Pracel in", ">> " + in.readString());
        fieldData.value = in.readString();
        fieldData.job_transaction_id = in.readInt();
        fieldData.field_attribute_master_id = in.readInt();           
        fieldData.required = in.readByte() != 0;
        fieldData.viewType = in.readString();
        fieldData.viewLabel = in.readString();
        fieldData.viewSubLabel = in.readString();
        fieldData.viewHelpText = in.readString();
        return fieldData;
    }

    @Override
    public FieldData[] newArray(int size) {
        Log.v("Array size", ">>> "+ size);
        return new FieldData[size];
    }
};

Мой способ получения данных:

Intent i = getIntent();
ArrayList<FieldData> fieldDataList =  i.getParcelableArrayListExtra("FieldDataList");

Это действие получает нулевой список. Я не знаю, что это значит и что здесь не так.



Ответы:


1

Попробуйте реализовать требуемый метод Parcelable для чтения и записи поля класса, Parcelable.Creator генерирует экземпляр вашего класса, который можно разделить, из посылки и посылки, а также значение поля класса для чтения и записи.

public class FieldData implements Parcelable {
    private int id;
    private String value;
    private int job_transaction_id;
    private int field_attribute_master_id;
    private Byte required;
    private String viewType;
    private String viewLabel;
    private String viewSubLabel;
    private String viewHelpText;

    public int describeContents() {

        return 0;
    }

    public void writeToParcel(Parcel out, int flags)
    {
        out.writeInt(id);
        out.writeString(value);
        out.writeInt(job_transaction_id);
        out.writeInt(field_attribute_master_id);
        out.writeByte(required);
        out.writeString(viewType);
        out.writeString(viewLabel);
        out.writeString(viewSubLabel);
        out.writeString(viewHelpText);
    }

    public static final Parcelable.Creator<FieldData> CREATOR
            = new Parcelable.Creator<FieldData>() {
        public FieldData createFromParcel(Parcel in) {
            return new FieldData(in);
        }

        public FieldData[] newArray(int size) {
            return new FieldData[size];
        }
    };

    private FieldData(Parcel in) {

        id = in.readInt();
        value = in.readString();
        job_transaction_id = in.readInt();
        field_attribute_master_id = in.readInt();
        required = in.readByte();
        viewType = in.readString();
        viewLabel = in.readString();
        viewSubLabel = in.readString();
        viewHelpText = in.readString();
    }
}
10.11.2014
  • спасибо... сработало отлично. Не могли бы вы объяснить, как это работало, создавая конструктор, а не по-моему. 10.11.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..