listview-Listvew 中 textview 和 checkbox 的问题

问题描述

Listvew 中 textview 和 checkbox 的问题
我想创建一个listview,包含textview 和 checkbox。我创建好了 listview,也可以捕捉listview item select,但是当我想捕捉 checkbox 的select和unselect时,获得null pointer exception异常。如何给checkbox创建setOnCheckedChangeListener()?

public class LocationActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {    // TODO Auto-generated method stub    super.onCreate(savedInstanceState);    setContentView(R.layout.locationmain);    ListView listview = (ListView) findViewById(R.id.listView1);    String selectQuery = ""SELECT  * FROM "" +     DatabaseHandler.TABLE_LOCATIONLABLES;    SQLiteDatabase db = new DatabaseHandler(this).getReadableDatabase();    Cursor cursor = db.rawQuery(selectQuery null);    final List<String> locLables = new ArrayList<String>();    if(cursor != null){        if (cursor.moveToFirst()) {            do {                locLables.add(cursor.getString(1));            } while (cursor.moveToNext());        }    }    //String[] locLables = new String[] {""Home""University""Office""};    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this R.layout.locationmain_entryR.id.textView12 locLables);    //cb gives a null pointer exception    CheckBox cb = (CheckBox) listview.findViewById(R.id.checkBox12);    cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {        @Override        public void onCheckedChanged(CompoundButton buttonView boolean isChecked) {            // TODO Auto-generated method stub            if(isChecked){                System.out.println(""selected"");            }else if(!isChecked){                System.out.println(""not selected"");            }        }    });         listview.setAdapter(adapter);    listview.setOnItemClickListener(new OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> arg0 View arg1 int arg2                long arg3) {            // TODO Auto-generated method stub            Toast.makeText(getApplicationContext() locLables.get(arg2) Toast.LENGTH_SHORT).show();        }    });}

解决方案

你可以保持独立的 adpater 类,那样就可以实现

public class bsAdapter extends BaseAdapter {   Activity cntx;   public bsAdapter(Activity context)   {     // TODO Auto-generated constructor stub     this.cntx=context;   }   public int getCount()   {     // TODO Auto-generated method stub     return listview_arr.length;   }  public Object getItem(int position)  {     // TODO Auto-generated method stub     return listview_arr[position];  }  public long getItemId(int position)  {     // TODO Auto-generated method stub     return listview_array.length;  }  public View getView(final int position View convertView ViewGroup parent)  {     View row=null;    LayoutInflater inflater=cntx.getLayoutInflater();    row=inflater.inflate(R.layout.search_list_item null);    TextView tv=(TextView)row.findViewById(R.id.title);    CheckBox cb=(CheckBox)row.findViewById(R.id.cb01);    tv.setText(listview_arr[position]);    cb.setOnClickListener(new OnClickListener(){    public void onClick(View v) {    if(cb.ischecked)    {       //ur code    }    else //ur code    }  });  return row;  } }

解决方案二:
你的CheckBox cb = (CheckBox) listview.findViewById(R.id.checkBox12); 是不是要放到listview.setAdapter(adapter);后面

时间: 2024-09-18 16:59:17

listview-Listvew 中 textview 和 checkbox 的问题的相关文章

C# winForms中Listview如何添加多个checkbox?

问题描述 C#winForms中Listview如何添加多个checkbox? 解决方案 解决方案二:模板列解决方案三:只有编辑项,编辑列,编辑组,但是这3个都不能把checkbox托进去.

android-在 ListView Footer 中的 Enter Click 监听器

问题描述 在 ListView Footer 中的 Enter Click 监听器 我想在 listView 中设置一个 edit text,作为一个footer,那样的话我就能添加一个评论.我可以把edittext 添加到listview中,但是没有看到我设置的监听器.为什么啊? editText = new EditText(getActivity()); editText.setHint("add comment"); editText.setBackgroundColor(Co

关于如何在listview监听器中如何获取所点击那部分的值

问题描述 关于如何在listview监听器中如何获取所点击那部分的值 我在listview绑定了三个textview, 我想在我点击listview的时候把我点击的项中,取得它里面的其中一个textview的值, 然后传递到另一个activity 我的监听器代码如下 OnItemClickListener listener =new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, Vi

android listview item中超链接的实现

问题描述 android listview item中超链接的实现 我想在listview的textview中实现超链接,但是没有反应,是怎么回事?还有个问题,就是适配器里面的内容怎么执行了5遍? public class FishWebActivity extends Activity { private Context context; private TextView text_title; private ListView web_list; @Override protected vo

java-Android的listview问题中的adapter

问题描述 Android的listview问题中的adapter @Override public View getView(int position, View convertView, ViewGroup parent) { convertView =LayoutInflater.from(MainActivity.this).inflate(R.layout.activity_main, null); if(convertView!=null) { textview=(TextView)

Android 中TextView的使用imageview被压缩问题解决办法

Android 中TextView的使用imageview被压缩问题解决办法 看下运行效果图: 今天解bug的时候遇到一个奇怪的问题:listview的item由一个textview和一个imageview组成,父布局是线性水平排列.我的本意是imageview显示相同的图片,textview显示文本,但是运行程序后发现,当某个textview的文本较多时,imageview会被压缩,刚开始没注意,检查代码了好久. 代码示例如下: <!--文本少的item--> <LinearLayou

关于HTML中input标签checkbox类型的疑问

问题描述 关于HTML中input标签checkbox类型的疑问 首先产生疑问的由来是我之前自己写的代码,需要实现选中删除的原理,可能是看别人的,也可能是自己灵光一现,实现了这个功能,但是如今回头看看又不懂了,所以在这里做个死记硬背的总结,也期待一个大神来开导我一下. 在form表单中代码是这样的(因为尖括号会被屏蔽所以用中文中括号代替) [input type='checkbox' name='eletment[ ] ' value='$id'] 于是我们用php把$id的变为数据库里相对应的

style-.net framework 4.0中WPF的checkbox控件的三种状态样式变更

问题描述 .net framework 4.0中WPF的checkbox控件的三种状态样式变更 当前使用.Net Framework 4.0 WPF开发一个界面,需要使用CheckBox的控件的isThreeState= true ,设置为三种状态,分别是未点击时白框,单击时显示对勾,再单击时显示中间一个小蓝框.分别对应checked值为false, true和 null. 我需要的是,如何装饰checked值为null时,其显示效果由蓝色框更换为一个红色叉的效果. 谢谢.

监听-listview item中是有EditText改变时获取Postion?

问题描述 listview item中是有EditText改变时获取Postion? listview item中是有EditText, 怎么在监听每个EditText的时候获取这个EditText的Postion? 解决方案 getview时,可以给这个edittext的tag赋值postion,然后取出tag得到postion 解决方案二: 不是本地爸爸的话大把大把差不多你都能 解决方案三: 用ListView 不要重用ConvertView