如何在android中从ListView中获取选中复选框的位置

如何在android中从ListView中获取选中复选框的位置,android,listview,checkbox,Android,Listview,Checkbox,我用标题旁边的复选框创建了自定义的列表视图。我想检查一下 列表视图中的复选框 我为从列表视图获取消息创建了以下函数,并使用意图将其发送到另一个列表视图,但我无法移动特定的复选框位置 公共类SpamActivity扩展了AppCompativity{ 列出短信息; 阵列列表sms1; ArrayList al; ListView lv; 复选框; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceStat

我用标题旁边的复选框创建了自定义的
列表视图
。我想检查一下
列表视图中的复选框

我为从
列表视图
获取消息创建了以下函数,并使用
意图将其发送到另一个
列表视图
,但我无法移动特定的
复选框
位置

公共类SpamActivity扩展了AppCompativity{
列出短信息;
阵列列表sms1;
ArrayList al;
ListView lv;
复选框;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.messagebox);
lv=(ListView)findViewById(R.id.lvMsg);
复选框=(复选框)findViewById(R.id.checkbox);
sms=新的ArrayList();
al=新阵列列表(0);
大众传播者();
/*SpamActivity SpamActivity=新SpamActivity();
al=空间活动性。al;
//InboxFragment InboxFragment=新的InboxFragment();
//al=inboxfragment.list;
对于(int i=0;i
import java.util.ArrayList;
导入java.util.List;
导入android.content.Context;
导入android.util.SparseBooleanArray;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.CheckBox;
导入android.widget.CompoundButton;
导入android.widget.CompoundButton.OnCheckedChangeListener;
导入android.widget.ImageView;
导入android.widget.RelativeLayout;
公共类SharedContactListAdapter扩展了ArrayAdapter{
私人语境;
私人持票人;
私有SparseBooleanArray mSparseBooleanArray;
私人名单;
公共共享ContactListAdapter(上下文、int资源、,
列出对象){
超级(上下文、资源、对象);
this.context=上下文;
mSparseBooleanArray=新SparseBooleanArray();
//mList=对象;
}
@凌驾
公共联系人SynResponse getItem(内部位置){
返回super.getItem(位置);
}
公共ArrayList getCheckedItems(){
ArrayList mTempArry=新的ArrayList();
对于(int i=0;i
您可以在列表视图上设置“setOnItemClickListener”并获取位置

  ListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

              // Here you can get the position   
          }
       });
ListView.setOnItemClickListener(新的OnItemClickListener(){
@O
import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.RelativeLayout;



public class SharedContactListAdapter extends ArrayAdapter<ContactSynResponse> {

    private Context context;
    private ViewHolder viewHolder;
    private SparseBooleanArray mSparseBooleanArray;
    private List<ContactSynResponse> mList;

    public SharedContactListAdapter(Context context, int resource,
            List<ContactSynResponse> objects) {
        super(context, resource, objects);
        this.context = context;
        mSparseBooleanArray = new SparseBooleanArray();
        // mList = objects;
    }

    @Override
    public ContactSynResponse getItem(int position) {
        return super.getItem(position);
    }

    public ArrayList<ContactSynResponse> getCheckedItems() {
        ArrayList<ContactSynResponse> mTempArry = new ArrayList<ContactSynResponse>();

        for (int i = 0; i < mList.size(); i++) {
            if (mSparseBooleanArray.get(i)) {

                ContactSynResponse data = mList.get(i);

                mTempArry.add(data);
            }
        }

        return mTempArry;
    }

    class ViewHolder {

        ImageView profilepic;
        ChimmerTextView contactname;
        ChimmerTextView contactno;
        RelativeLayout completelayout;
        CheckBox selectcheckbox;

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater inflator = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflator.inflate(R.layout.sharedcontactlistdata,
                    parent, false);
            viewHolder = new ViewHolder();

            viewHolder.profilepic = (ImageView) convertView
                    .findViewById(R.id.profilepic_image_view);
            viewHolder.contactname = (ChimmerTextView) convertView
                    .findViewById(R.id.contactnameTV);
            viewHolder.contactno = (ChimmerTextView) convertView
                    .findViewById(R.id.contactnoTV);
            viewHolder.completelayout = (RelativeLayout) convertView
                    .findViewById(R.id.completeRL);
            viewHolder.selectcheckbox = (CheckBox) convertView
                    .findViewById(R.id.contact_checkbox);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        ContactSynResponse data = getItem(position);
        viewHolder.contactname.setText(data.getName());
        viewHolder.contactno.setText(data.getPhone());
        viewHolder.selectcheckbox.setTag(position);

        viewHolder.selectcheckbox.setOnCheckedChangeListener(new CheckListener(
                data, viewHolder.selectcheckbox));
        viewHolder.completelayout.setOnClickListener(new ClickListener(data,
                viewHolder.selectcheckbox));
        return convertView;
    }

    class CheckListener implements OnCheckedChangeListener {

        private CheckBox checkbox;

        public CheckListener(ContactSynResponse data, CheckBox checkbox) {

            this.checkbox = checkbox;

        }

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            if (isChecked) {
                checkbox.setButtonDrawable(R.drawable.notification_selected_checkbox);

            } else {
                checkbox.setButtonDrawable(R.drawable.notification_checkbox);

            }
            buttonView.setChecked(isChecked);

            mSparseBooleanArray.put((Integer) buttonView.getTag(), isChecked);
        }

    }

    class ClickListener implements OnClickListener {
        private CheckBox checkbox;

        public ClickListener(ContactSynResponse data, CheckBox checkbox) {
            this.checkbox = checkbox;
        }

        @Override
        public void onClick(View v) {

            if (checkbox.isSelected()) {
                checkbox.setChecked(false);
                checkbox.setButtonDrawable(R.drawable.notification_checkbox);

                mSparseBooleanArray.put((Integer) checkbox.getTag(), false);
            } else {
                checkbox.setChecked(true);
                checkbox.setButtonDrawable(R.drawable.notification_selected_checkbox);
                mSparseBooleanArray.put((Integer) checkbox.getTag(), true);
            }

        }

    }

}
  ListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

              // Here you can get the position   
          }
       });