Android пройти ArrayListпо намерению - PullRequest
0 голосов
/ 27 февраля 2012

Я создал класс с именем ChannelObj, который содержит значения, подобные этому

public class ChannelObj {
public String enable;
public String id;
public String name;
public String ptz;
public ChannelObj(Node n){
     this.enable =  n.getAttributes().getNamedItem("enabled").getNodeValue();
     this.id = n.getAttributes().getNamedItem("id").getNodeValue();
     this.name = n.getAttributes().getNamedItem("name").getNodeValue();
     this.ptz = n.getAttributes().getNamedItem("ptz").getNodeValue();
}
}

, и этот класс может создать объект Obj, содержащий необходимые данные;

после этого у меня есть ArrayListnamed allChannel содержит все ChannelObj, которые у меня есть

, как это

        for(int i = 0;i<num_of_channel;i++)
    {
        allChannel.add(new ChannelObj(n1.item(i)));
    }

я проверил, что данные в allChannel верны

, но я хочу передать этот ArrayList следующей операции

Я пробовал такие способы, как

            Intent i = new Intent(this,ChannelListActivity.class);
        Bundle b = new Bundle();
        b.putParcelableArrayListExtra("dd", ArrayList<ChannelObj> allChannels);
        i.putExtra(String name,b);
        startActivity(i);

, но не сработал и все еще не так

что я должен делать?

спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Альтернативой ответу, данному Бенуаром, является использование в вашем классе ChannelObj интерфейса Serializable.Вы используете только простые типы данных, поэтому вся (де) сериализация будет выполняться автоматически (g) (t) под водой.

Если ваш класс реализует Serializable, вы можете добавить его в Bundle какследует:

bundle.putSerializable("CHANNELOBJ_LIST", mChannelObjList);

Обратите внимание, что вам может потребоваться приведение к ArrayList<ChannelObj> (или к какой-либо другой конкретной реализации List<T>), поскольку интерфейс List<T> не реализует Serializable.

Получить список объектов в следующем упражнении также просто:

List<ChannelObj> mChannelObjList = (ArrayList<ChannelObj>) bundle.getSerializable("CHANNELOBJ_LIST");
0 голосов
/ 27 февраля 2012

Ваш класс должен реализовать Parcelable проверить это здесь: http://developer.android.com/reference/android/os/Parcelable.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...