网络上的那个东西似乎都不准,以下是我做的此方法为可行。
首先,main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <ListView        android:id="@+id/listView1"        android:layout_width="match_parent"        android:layout_height="wrap_content" >    </ListView></LinearLayout>


然后list.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:id="@+id/_id"        android:visibility="gone"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:text="TextView" />        <CheckedTextView    android:id="@+id/checkText"    android:layout_width="fill_parent"    android:layout_height="?android:attr/listPreferredItemHeight"    android:textAppearance="?android:attr/textAppearanceLarge"    android:gravity="center_vertical"    android:checkMark="?android:attr/listChoiceIndicatorMultiple"    android:paddingLeft="6dip"    android:paddingRight="6dip"/></RelativeLayout>


以下是自定义组件。
public final class Compan {public TextView id;public CheckedTextView ctv;}


自定义adapter方法
package com.duduli.li;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.content.Context;import android.database.Cursor;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.CheckedTextView;import android.widget.SimpleCursorAdapter;import android.widget.TextView;public class MyAdapter extends SimpleCursorAdapter{ private List list = new ArrayList(); public String s[]; private List<Map<String, Object>> data;    private LayoutInflater layoutInflater;    private List<String> delNumber = new ArrayList<String>(); @SuppressWarnings("unused") private Context context;  public MyAdapter(Context context, int layout, Cursor c,String[] from, int[] to) {   super(context, layout, c, from, to);        this.context = context;           this.data = getData();           this.layoutInflater = LayoutInflater.from(context);       }     @Overridepublic int getCount() {// TODO Auto-generated method stubreturn super.getCount();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn super.getItem(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn super.getItemId(position);}@SuppressWarnings("unused")@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubCompan cp = null;if(cp == null){cp = new Compan();convertView = layoutInflater.inflate(R.layout.list, null);cp.id = (TextView) convertView.findViewById(R.id._id);cp.ctv =  (CheckedTextView) convertView.findViewById(R.id.checkText);convertView.setTag(cp);}else{cp = (Compan) convertView.getTag();}cp.id.setText((CharSequence) data.get(position).get("_id"));cp.ctv.setText((CharSequence) data.get(position).get("Number"));return convertView;}public List<Map<String, Object>> getData() {List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();while (getCursor().moveToNext()) {Map<String, Object> map = new HashMap<String, Object>();// System.out.println("ID: "+getCursor().getString(0));map.put("_id", getCursor().getString(0));// System.out.println("NAME: "+getCursor().getString(1));map.put("Number", getCursor().getString(1));list.add(map);}return list;}}


下面是Acitivity
package com.duduli.li;import android.app.ListActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.CheckedTextView;import android.widget.ListView;import com.duduli.db.AllowCallDAO;/** * This example shows how to use choice mode on a list. This list is  * in CHOICE_MODE_MULTIPLE mode, which means the items behave like * checkboxes. */public class CallComingTest2Activity extends ListActivity {private CheckedTextView multiple;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        AllowCallDAO dao = new AllowCallDAO(this);        MyAdapter adapter = new MyAdapter(this, R.layout.list, dao.show()        , new String[]{"_id","phonenr"}, new int[]{R.id._id,R.id.checkText});                                final ListView listView = getListView();                listView.setItemsCanFocus(false);        setListAdapter(adapter);                   }@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {// TODO Auto-generated method stubSystem.out.println(position);//[b]下面的才是最重要的,网络上写的为:multiple = (CheckedTextView)l.getChildAt(position).findViewById(R.id.checkText);此方法很有问题,比如说listview进行翻页之后就会出问题。[/b]multiple = (CheckedTextView)v.findViewById(R.id.checkText);if(multiple != null){System.out.println("not null");}else{System.out.println("null");}if(multiple.isChecked()){multiple.setChecked(false);}else{multiple.setChecked(true);}super.onListItemClick(l, v, position, id);}}

更多相关文章

  1. Android SDK 安装过程 与 安装失败的处理方法
  2. Android SDK 安装中组件的离线安装方法 (share)
  3. Android中打开新的Activity的三种方法
  4. Android EditText默认不弹出输入法的实现方法
  5. activity中onSaveInstanceState方法调用时机详解
  6. Android 利用getIdentifier()方法获取资源ID
  7. Android cursor query方法详解
  8. android的网络编程

随机推荐

  1. Asp.net中Web.config连接字符串及配置数
  2. yahoo mysql性能监控工具使用
  3. 有可能用by来计算一列的总数吗?
  4. 关于sql语句的多重循环
  5. 如何将SQL Server日期格式转换为Oracle?
  6. 深度探索 -- 生成SQL语句的向导应如何做?
  7. 关于使用大型数据库,我需要了解什么?
  8. 一种在t-SQL中选择两个日期之间的日期的
  9. MYSQL5.7---ONLY_FULL_GROUP_BY 异常处理
  10. 在sdCard创建数据库(打造自己的SQLiteOpen