作者tacor (塔寇尔)
看板AndroidDev
标题Re: [问题] AlertDialog里加入有Checkbox的Listview
时间Tue Aug 20 09:13:44 2013
请参考
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
1F:推 whow:我会仔细拜读的 谢谢!! 08/20 13:37