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