Re: [問題] AlertDialog裡加入有Checkbox的Listview

看板AndroidDev作者 (塔寇爾)時間12年前 (2013/08/20 09:13), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
請參考 http://www.eoeandroid.com/thread-152037-1-1.html http://pianovv510.blogspot.tw/2013/04/android-checkbox-dialog-box.html http://karrysu.blogspot.tw/2011/07/dialog-android.html ※ 引述《whow (somebody)》之銘言: : 如標題 : 我想在要我的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: 114.35.172.112

08/20 13:37, , 1F
我會仔細拜讀的 謝謝!!
08/20 13:37, 1F
文章代碼(AID): #1I4iBBp6 (AndroidDev)
文章代碼(AID): #1I4iBBp6 (AndroidDev)