AndroidDev 板


LINE

如标题 我想在要我的MainActivity中按下一个按钮跳出AlertDialog 让使用者有一个List可以选择自己想要的选项 并且有checkbox可以复选 等到按下确认键後再把这些选项存起来 看起来应该是要自己写一个Adapter 但是我试了好久 老是在listview.setAdapter(adapter)出错 //listview是我ListView物件 adapter是我自己写的Adapter 因为我把这行注解起来後程式是可以执行的@@ 我的想法是: MyAdapter adapter = new MyAdapter(String[] items, MainActivity.this); 先宣告一个自己写的adapter MyAdapter的Constructor: MyAdapter(String[] name, Context context){ /* 把给定的项目存到一个list里 initialize checkbox的状态 */ inflater = LayoutInflater.from(context); } 而getview则是这样: public View getView(int position, View convertView, ViewGroup parent) { View view=null; ViewHolder holder = null; if (map.get(position) == null) { //map是一个用来存位置和view的HashMap view = inflater.inflate(R.layout.item, null); holder = new ViewHolder(); holder.selected = (CheckBox)view.findViewById(R.id.item_cb); holder.name = (TextView)view.findViewById(R.id.item_tv); final int p = position; map.put(position, view); holder.selected.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CheckBox cb = (CheckBox)v; mChecked.set(p, cb.isChecked()); //mChecked为项目是否被选取的list } }); view.setTag(holder); }else{ view = map.get(position); holder = (ViewHolder)view.getTag(); } holder.selected.setChecked(mChecked.get(position)); holder.name.setText(list.get(position)); return view; } 在MainActivity中有这几行: ListView lv = (ListView)findViewById(R.id.list); adapter = new MyAdapter(items, MainActivity.this); lv.setAdapter(adapter); new AlertDialog.Builder(Gps_test.this) .setTitle("CheckBoxtest") .setView(lv) .setPositiveButton(...){...} .setNegativeButton(...){...} .show(); 标记起来的地方是我觉得可能有错的地方 已经卡一两天了 烦请各位帮忙@@ 这段code是从网路上找到的 有自己修改一点 如果有哪里描述不够清楚我会再补上!! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.164.149.193
1F:推 shawnba:感觉是 findViewById 的问题, 要用 view.findViewById 08/20 09:45
2F:→ shawnba:参考 http://tinyurl.com/n3gbg8r 08/20 09:46
3F:推 givemepass:出错的log贴出来看看 08/20 12:00
s大指的是ListView lv = (ListView)findViewById(R.id.list); 要改成ListView lv = (ListView)lv.findViewById(R.id.list); 吗? 我试过了还是一样@@ m大指的log是这个吗? 08-20 13:25:52.868: D/AndroidRuntime(2061): Shutting down VM 08-20 13:25:52.868: W/dalvikvm(2061): threadid=1: thread exiting with uncaught exception (group=0x400259f8) 08-20 13:25:52.868: E/AndroidRuntime(2061): FATAL EXCEPTION: main 08-20 13:25:52.868: E/AndroidRuntime(2061): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.project/com.example.project.MainActivity}: java.lang.NullPointerException 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.app.ActivityThread.access$2300(ActivityThread.java:135) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.os.Handler.dispatchMessage(Handler.java:99) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.os.Looper.loop(Looper.java:144) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.app.ActivityThread.main(ActivityThread.java:4937) 08-20 13:25:52.868: E/AndroidRuntime(2061): at java.lang.reflect.Method.invokeNative(Native Method) 08-20 13:25:52.868: E/AndroidRuntime(2061): at java.lang.reflect.Method.invoke(Method.java:521) 08-20 13:25:52.868: E/AndroidRuntime(2061): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 08-20 13:25:52.868: E/AndroidRuntime(2061): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 08-20 13:25:52.868: E/AndroidRuntime(2061): at dalvik.system.NativeStart.main(Native Method) 08-20 13:25:52.868: E/AndroidRuntime(2061): Caused by: java.lang.NullPointerException 08-20 13:25:52.868: E/AndroidRuntime(2061): at com.example.project.MainActivity.showCheckBoxListView(MainActivity.java:253) 08-20 13:25:52.868: E/AndroidRuntime(2061): at com.example.project.MainActivity.onCreate(MainActivity.java:103) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069) 08-20 13:25:52.868: E/AndroidRuntime(2061): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751) 08-20 13:25:52.868: E/AndroidRuntime(2061): ... 11 more 这是我用eclipse跑完後再logcat找到的 ※ 编辑: whow 来自: 218.164.149.193 (08/20 13:35)
4F:→ givemepass:看一下253行是啥 喷出NullPointerException通常是 08/20 13:39
5F:→ givemepass:元件没有初始化 08/20 13:40
6F:→ whow:lv = (ListView)lv.findViewById(R.id.friends_list); 08/20 13:51
7F:→ whow:我觉得这样应该有给lv初值了吧.. 08/20 13:52
8F:推 givemepass:lv = (ListView)findViewById(R.id.friends_list); 08/20 14:04
9F:→ givemepass:试看看 08/20 14:04
10F:→ whow:不行耶 我觉得问题应该是出在MyAdapter.. 08/20 15:57
11F:推 givemepass:把你整份code丢上来吧 不然不知道要猜到甚麽时候 08/20 17:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP