Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在从ListView获取EditText值。。。有时_Java_Android_Eclipse_Listview - Fatal编程技术网

Java 正在从ListView获取EditText值。。。有时

Java 正在从ListView获取EditText值。。。有时,java,android,eclipse,listview,Java,Android,Eclipse,Listview,因此,我有一个带有自定义单元格的ListView,其中包含EditText。我创建了一个根据请求调用的函数,该函数列出了每个编辑文本的所有值。所有单元格都是从静态列表中创建的,它们都完全相同。 问题是,前7个单元格使用下面的代码工作正常,然后崩溃: ListView l = (ListView) CartPage.this.findViewById(R.id.cartItems); // total_item_count is equal to the int 11, which is how

因此,我有一个带有自定义单元格的ListView,其中包含EditText。我创建了一个根据请求调用的函数,该函数列出了每个编辑文本的所有值。所有单元格都是从静态列表中创建的,它们都完全相同。 问题是,前7个单元格使用下面的代码工作正常,然后崩溃:

ListView l = (ListView) CartPage.this.findViewById(R.id.cartItems);
// total_item_count is equal to the int 11, which is how many cells there are.
for(int i=0;i<total_item_count-1;i++){
    View view=l.getChildAt(i);
    System.out.println("("+i+"/"+total_item_count+")");
    EditText editText=(EditText) view.findViewById(R.id.product_count);
    String string=editText.getText().toString();
    System.out.println(i+": "+string);

}
我已经尝试清理我的项目10次了,都没有用

编辑:发现它只对屏幕上显示的项目数有效(因此,当您将其翻转到横向显示3个项目时,它只对前3个项目有效)。

ListView l=(ListView)CartPage.this.findViewById(R.id.cartItems);
EditText EditText=(EditText)view.findViewById(R.id.product\u计数);
字符串字符串;
//项目总数等于整数11,即有多少个单元格。
对于(int i=0;i
ListView l=(ListView)CartPage.this.findViewById(R.id.cartItems);
EditText EditText=(EditText)view.findViewById(R.id.product\u计数);
字符串字符串;
//项目总数等于整数11,即有多少个单元格。
对于(int i=0;i
ListView l=(ListView)CartPage.this.findViewById(R.id.cartItems);
EditText EditText=(EditText)view.findViewById(R.id.product\u计数);
字符串字符串;
//项目总数等于整数11,即有多少个单元格。
对于(int i=0;i
ListView l=(ListView)CartPage.this.findViewById(R.id.cartItems);
EditText EditText=(EditText)view.findViewById(R.id.product\u计数);
字符串字符串;
//项目总数等于整数11,即有多少个单元格。

对于(int i=0;i您不应该迭代
ListView
中的视图,并假设它实际上为列表中的每个项目包含一个单独的视图。它不应该,
ListView
在滚动时循环视图,只根据
ListAdapter
交换数据


相反,您应该在
列表适配器
中迭代数据,但这意味着您很可能必须修改适配器代码,以便在编辑文本时将文本保存在
编辑文本
中的某个位置。

您不应该在
列表视图
中迭代视图,并假设它实际上包含一个单独的视图列表中的每一项。当滚动浏览时,
ListView
不会回收视图,只会根据
ListAdapter
交换数据


相反,您应该在
列表适配器
中迭代数据,但这意味着您很可能必须修改适配器代码,以便在编辑文本时将文本保存在
编辑文本
中的某个位置。

您不应该在
列表视图
中迭代视图,并假设它实际上包含一个单独的视图列表中的每一项。当滚动浏览时,
ListView
不会回收视图,只会根据
ListAdapter
交换数据


相反,您应该在
列表适配器
中迭代数据,但这意味着您很可能必须修改适配器代码,以便在编辑文本时将文本保存在
编辑文本
中的某个位置。

您不应该在
列表视图
中迭代视图,并假设它实际上包含一个单独的视图列表中的每一项。当滚动浏览时,
ListView
不会回收视图,只会根据
ListAdapter
交换数据


相反,您应该在
列表适配器
中迭代数据,但这意味着您很可能必须修改适配器代码,以便在编辑文本时将文本保存在
编辑文本
中的某个位置。

您的
CartPage.java
文件的第305行是什么?还需要发布相关信息代码,所以我们知道你在做什么。我的评论与原始问题无关,但我真的认为你的for循环不正确。它应该是
for(int I=0;i@nKnEditText EditText=(EditText)view.findViewById(R.id.product\u计数);@trylimits是的,你是对的!你的
CartPage.java
文件的第305行是什么?还需要发布相关的代码,这样我们就知道你在做什么。我的评论与原始问题无关,但我真的认为你的for循环不正确。它应该是
for(int I=0;i@nKn编辑文本编辑文本=(EditText)view.findViewById(R.id.product\U计数);@trylimits是的,你是对的!你的
CartPage.java
文件的第305行是什么?还需要发布相关的代码,这样我们就知道你在做什么。我的评论与原始问题无关,但我真的认为你的for循环不正确。它应该是
for(int I=0;i@nKn编辑文本编辑文本=(EditText)view.findViewById(R.id.product\U计数);@trylimits是的,你是对的!你的
CartPage.java
文件的第305行是什么?还需要发布相关的代码,这样我们就知道你在做什么。我的评论与原始问题无关,但我真的认为你的for循环不正确。它应该是
for(int I=0;i@nKn编辑文本编辑文本=(EditText)view.findViewById(R.id.product_count);@trylimits是的,你说得对!尝试过了,效果很好!删除了view.findViewById,并将其更改为findViewById(因为视图尚未定义),然后就成功了!非常感谢!view view=l.getChildAt(i)这行代码的用途是什么?没有使用视图将其打印出来,效果很好!删除了view.findviewbyd,并将其更改为findviewbyd(因为视图尚未定义),然后它就工作了!非常感谢!view view=l.getChildAt(i)这行代码的用途是什么?没有使用view将它打印出来,效果很好!删除了view.findViewById,并将其更改为findViewById(因为尚未定义view),然后它就工作了!非常感谢!view view=l.getChildAt(i)这行代码的用途是什么?view没有使用DT
02-17 06:44:17.540: E/AndroidRuntime(29086): FATAL EXCEPTION: main
02-17 06:44:17.540: E/AndroidRuntime(29086): java.lang.IllegalStateException: Could not execute method of the activity
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.view.View$1.onClick(View.java:3617)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.view.View.performClick(View.java:4222)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.view.View$PerformClick.run(View.java:17397)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.os.Handler.handleCallback(Handler.java:725)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.os.Looper.loop(Looper.java:137)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.app.ActivityThread.main(ActivityThread.java:5167)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at java.lang.reflect.Method.invokeNative(Native Method)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at java.lang.reflect.Method.invoke(Method.java:511)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at dalvik.system.NativeStart.main(Native Method)
02-17 06:44:17.540: E/AndroidRuntime(29086): Caused by: java.lang.reflect.InvocationTargetException
02-17 06:44:17.540: E/AndroidRuntime(29086):    at java.lang.reflect.Method.invokeNative(Native Method)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at java.lang.reflect.Method.invoke(Method.java:511)
02-17 06:44:17.540: E/AndroidRuntime(29086):    at android.view.View$1.onClick(View.java:3612)
02-17 06:44:17.540: E/AndroidRuntime(29086):    ... 11 more
02-17 06:44:17.540: E/AndroidRuntime(29086): Caused by: java.lang.NullPointerException
02-17 06:44:17.540: E/AndroidRuntime(29086):    at com.venuevip.android.CartPage.updateCart(CartPage.java:305)
02-17 06:44:17.540: E/AndroidRuntime(29086):    ... 14 more
ListView l = (ListView) CartPage.this.findViewById(R.id.cartItems);
EditText editText=(EditText) view.findViewById(R.id.product_count);
String string;
// total_item_count is equal to the int 11, which is how many cells there are.
for(int i=0;i<total_item_count-1;i++){
    View view=l.getChildAt(i);
    System.out.println("("+i+"/"+total_item_count+")");

    string=editText.getText().toString();
    System.out.println(i+": "+string);

}