我试图从服务器获取用户在ListView中下的订单,但我总是得到NULL POINTER EXCEPTION此处:-tName.setText(strName(
要求:
我想在ListView中获取所有这些订单
Logcat状态:
05-23 09:41:05.684: D/CartAdapter(784): MemberID:: 1
05-23 09:41:05.953: D/CartAdapter(784): strMemberID 37
05-23 09:41:05.953: D/CartAdapter(784): strName Samosa(2)(Rs.3.75),Vegetable Pakora(3)(Rs.3.75),Veggie(1)(Rs.5.25),Daal Soup(4)(Rs.3.25),
05-23 09:41:05.953: D/AndroidRuntime(784): Shutting down VM
05-23 09:41:06.034: E/AndroidRuntime(784): Caused by: java.lang.NullPointerException
05-23 09:41:06.034: E/AndroidRuntime(784): at OrdersActivity.showInfo(OrdersActivity.java:91)
在PHP中,我使用以下查询来获取记录:
$strSQL = "SELECT * FROM order_details WHERE 1 AND MemberID = '".$strMemberID."' ";
这是完全错误的实现。
您正试图断章取义地访问TextView。事实上,您的activity_orders.xml中从未存在任何tname。
从描述中可以看出,您正试图使用基本适配器实现自定义列表视图。在扩展视图后,您必须在CustomAdapter的getView方法中分配值。
请阅读Custom ListView的一些实现。
参考文献:链接1链路2
虽然我看不到xml布局,但我可以尝试提供帮助。
首先,在debug透视图中,转到"断点"视图并单击J!图标(异常断点(。键入NullPointerException
并点击回车键。
现在,您的代码将在异常点中断执行,您应该能够看到什么属性实际上为null。
此外,通过展开异常来检查是否存在内部异常。之前可能发生了另一个异常,但导致nullpointerexception
检查R.id.txtItemDetails是否在布局R.layout.activity_orders中,因为如果它无法获得对tName的引用,并且您尝试使用setText,它将抛出一个NULLPOINTEREXCEPTION,因为tName不会引用任何
试试这个:
- 在您的
showInfo();
中,在itemsList
中添加strMemberID
和strName
- 在点1之后剪切并粘贴
adapter = new OrdersAdapter(this, itemsList);
和list.setAdapter(adapter);
- 在您的
OrdersAdapter.java
getView()
中,在膨胀视图后添加TextView tId = (TextView) vi.findViewById(R.id.txtTotalAmount);
,从itemList
设置文本