,各位一块研究下。
好奇怪的问题,各位一块研究下。。
是这样的一个情景:
我的应用中有一个ArrayList,保存的是一个数据结构的多个对象(暂且叫DataItem吧)。在一个adapter的getView()方法里,将ArrayList中对应的数据结构以参数的形式传给一个AsyncTask,在doInBackground()方法里下载完成后,改变从外边传进来的DataItem对象的某些变量的值。。。。
问题来了,下载了数据之后,在adapter里查看内存中的ArrayList,其数据结构里的变量值还是原来的,并没有被改变。
之后我模拟了一下这个情形,将一个对象传给另外一个类中的某个方法,并在其中改变这个对象的值,在外边输出的时候,值是被改变了的。。。
晕了。。。求大侠帮忙分析一下问题所在,
------解决方案--------------------
代码贴出来 看看,这样看不详细!
------解决方案--------------------
你中途有将引用重新复制给其他变量来完成 修改值得操作么
------解决方案--------------------
我觉得有。你查看一下,你修改的对象的地址是否是你传过来的对象的地址,如果不一样,中间肯定哪一步出错了。
是这样的一个情景:
我的应用中有一个ArrayList,保存的是一个数据结构的多个对象(暂且叫DataItem吧)。在一个adapter的getView()方法里,将ArrayList中对应的数据结构以参数的形式传给一个AsyncTask,在doInBackground()方法里下载完成后,改变从外边传进来的DataItem对象的某些变量的值。。。。
问题来了,下载了数据之后,在adapter里查看内存中的ArrayList,其数据结构里的变量值还是原来的,并没有被改变。
之后我模拟了一下这个情形,将一个对象传给另外一个类中的某个方法,并在其中改变这个对象的值,在外边输出的时候,值是被改变了的。。。
晕了。。。求大侠帮忙分析一下问题所在,
------解决方案--------------------
代码贴出来 看看,这样看不详细!
------解决方案--------------------
你中途有将引用重新复制给其他变量来完成 修改值得操作么
------解决方案--------------------
我觉得有。你查看一下,你修改的对象的地址是否是你传过来的对象的地址,如果不一样,中间肯定哪一步出错了。