关于自定义适配器的问题

    自己想通过onActivityResult获取返回参数设置listview时候出了错,忘各位大牛能帮我分析一下:

    对出的问题我做了2个实验。
    首先,这是自己创建的类
 public class CapListNode {
    private int Q;
    private int C[] = new int[16];

    public CapListNode(int q, int[] c) {
        super();
        this.Q = q;
        this.C = c;
    }

    public int getQ() {
        return Q;
    }


    public void setQ(int q) {
        Q = q;
    }


    public int[] getC() {
        return C;
    }


    public void setC(int c,int i) {
        C[i] = c;
    }

然后创建的ArrayList(),在Oncreate中,在链表中添加了3个数据之后setadapter,结果显示如下

图片说明

图中紫色区域就是在自定义的adapter中打印的数据,结果显示,能正常的将数据读取并映射到listview中。

然后我在onActivityResult()这里面添加了一个数据,然后.notifyDataSetChanged()。返回这个界面的时候打印的结果如图:

09-28 10:06:11.084: D/test(19872): ***************test******************

09-28 10:06:11.084: D/test(19872): tmp:5

09-28 10:06:11.084: D/test(19872): CC:1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;

09-28 10:06:11.084: D/test(19872): tmp:3

09-28 10:06:11.084: D/test(19872): CC:0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;

09-28 10:06:11.084: D/test(19872): tmp:4

09-28 10:06:11.084: D/test(19872): CC:1;2;3;1;2;3;1;2;3;1;2;3;1;2;3;1;

09-28 10:06:11.084: D/test(19872): tmp:10

09-28 10:06:11.084: D/test(19872): CC:4;3;2;1;4;3;2;1;4;3;2;1;4;3;2;1;

09-28 10:06:11.084: D/test(19872): *************test end***********






09-28 10:06:11.113: D/test(19872): Q值:5

09-28 10:06:11.113: D/test(19872): 调用类C值:0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;

09-28 10:06:11.118: D/test(19872): Q值:3

09-28 10:06:11.118: D/test(19872): 调用类C值:0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;

09-28 10:06:11.122: D/test(19872): Q值:4

09-28 10:06:11.122: D/test(19872): 调用类C值:0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;

09-28 10:06:11.152: D/test(19872): Q值:10

09-28 10:06:11.152: D/test(19872): 调用类C值:0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;

其中上面的第一块(test开头test end结尾)是我在onActivityResult()对链表内容进行打印,里面的值都是正确的,但是通过.notifyDataSetChanged()对链表重新映射的时候,自定义adapter中读取(下面第二块)的链表的长度和Q值都是正确的,但是 16个int数组就被清零了,这是什么原因啊,求各位大牛帮忙!!

CapListNode 你这个类未序列化,传值的过程中导致数据丢失。