请教android高手,帮我检查下代码,我不知道为什么报空指针?

MyAdapteradapter=newMyAdapter(this);menugrid=(GridView)this.findViewById(R.id.menugri... MyAdapter adapter = new MyAdapter(this);
menugrid = (GridView)this.findViewById(R.id.menugrid);

menugrid.setAdapter(adapter);

menugrid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String info = menugrid.getItemAtPosition(arg2).toString();
Toast.makeText(MenuList.this, "Delete " + info, 1).show();
}
});

MyAdapter 和 getview 都是重写过的,gridview显示也正常,就是点击时menugrid.getItemAtPosition(arg2)会报空指针<map</map
展开
 我来答
yu9fei
2013-08-12 · 超过34用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:89.1万
展开全部
MyAdapter adapter = new MyAdapter(this);
创建 MyAdapter 没有传入一个你初始化的List,是不是 Adapter类中已经有你自己初始化的一个List用来显示到GridView,一般都会传入一个某个数据类型的List。例如:
ArrayList<String> list = new ArrayList<String>();
list.add("A");
MyAdapter adapter = new MyAdapter(this, list);

麻烦附上log看一下
追问
HashMap items = (HashMap) dataList.get(arg2);
Toast.makeText(MenuList.this, "Delete " + items.get("foodname"), 1).show();
点击事件中,直接从dataList里取当前点击的值,这种写法合适吗?
追答
这样写就和Adapter没有了关系,
String info = menugrid.getItemAtPosition(arg2).toString();
改为:String info = arg0.getItemAtPosition(arg2).toString();
MyAdapter类中改写getItem方法,返回你的数据表的position
tomszheng2
2013-08-12 · TA获得超过1098个赞
知道小有建树答主
回答量:971
采纳率:0%
帮助的人:568万
展开全部
@Override 这行去掉试试。
话说我很久没写android程序了,话说空指针的话加个断点,看看堆栈什么的,应该是比较容易解决的。我没记错的话是那个debug小虫子。

有可能的话最好给点调试信息截图。以及堆栈调用情况。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百科追击者
2013-08-12 · TA获得超过849个赞
知道小有建树答主
回答量:792
采纳率:40%
帮助的人:277万
展开全部
因为你的设置Adapter的List里面的参数值类型不对啊。因为如果你是往List传入<map>,那么你get到的也是一个map值,而不是String类型。所以你不能直接获取,因为它找不到那个字符串啊。
追问
long item = arg0.getItemIdAtPosition(arg2)
那item也是报空指针,是什么原因啊?

我该怎么获得当前点击项的值呢
追答
把toString去掉 因为你获取的不是String类型 然后再强转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fe59b4c2b
2013-08-12 · TA获得超过1130个赞
知道小有建树答主
回答量:1174
采纳率:0%
帮助的人:786万
展开全部
Object obj=arg0.getItemAtPosition(arg2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式