自己想通过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数组就被清零了,这是什么原因啊,求各位大牛帮忙!!