Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何仅获取我在android中签过的id?_Java_Android - Fatal编程技术网

Java 如何仅获取我在android中签过的id?

Java 如何仅获取我在android中签过的id?,java,android,Java,Android,使用此代码,我将获得所有ListView的值,该值在id中被选中和取消选中: if (v.getId() == R.id.contact_btnNext) { StringBuilder id = new StringBuilder(); String prefix = ""; for (Datamodel datamodel : mAdapter.arrSelectedModel ) { id.append(pre

使用此代码,我将获得所有ListView的值,该值在id中被选中和取消选中:

if (v.getId() == R.id.contact_btnNext) {

        StringBuilder id = new StringBuilder();
        String prefix = "";

        for (Datamodel datamodel : mAdapter.arrSelectedModel ) {


            id.append(prefix).append(datamodel.getId());

            prefix = ",";
        }

这是我的适配器,我已使用布尔值public ArrayList arrCheckboxState作为检查值和未检查值,但我无法获取已检查的id值。我在哪里出错请告诉我,因为我获取的是所有列表视图项的id值,但我必须仅获取选定的id。

删除此行。。因为您没有将位置设置为标记。因为位置已经存在于参数中,为什么要从标记中获取它

public class AdapterContactAddfriend extends BaseAdapter {

    private Context context;
    private ArrayList<Datamodel> arrModel;
    public ArrayList<Datamodel> arrSelectedModel;
    public ArrayList<Boolean> arrCheckboxState;
    ViewHolder holder;

    ImageLoader imageloader;

    public AdapterContactAddfriend(Context context,
            ArrayList<Datamodel> arrModel) {
        this.context = context;
        this.arrModel = arrModel;
        arrCheckboxState = new ArrayList<Boolean>();
        arrSelectedModel = new ArrayList<Datamodel>();
        imageloader = new ImageLoader(context);

        for (int i = 0; i < arrModel.size(); i++) {
            arrCheckboxState.add(false);
        }

    }

    @Override
    public int getCount() {
        return arrModel.size();
    }

    @Override
    public Object getItem(int position) {
        return arrModel.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

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

        if (convertView == null) {
            holder = new ViewHolder();
            LayoutInflater mInflater = (LayoutInflater) context
                    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater
                    .inflate(R.layout.row_contactaddfriend, null);
            holder.checkBox = (CheckBox) convertView
                    .findViewById(R.id.rowcontact_checkbox);

            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
        holder.txtContactName.setText(arrModel.get(position).contactName);

        holder.checkBox
                .setOnCheckedChangeListener(new OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(CompoundButton buttonView,
                            boolean isChecked) {
                        int position = (Integer) buttonView.getTag();
                        if (isChecked) {
                            arrCheckboxState.set(position, true);
                            arrModel.get(position).setChecked(true);
                            arrSelectedModel.add(arrModel.get(position));
                        } else {
                            arrModel.get(position).setChecked(false);
                            arrCheckboxState.set(position, false);
                            arrSelectedModel.remove(arrModel.get(position));
                        }
                    }
                });

        return convertView;
    }

}
像这样使用它

 int position = (Integer) buttonView.getTag();

什么那么这是什么代码arrCheckboxState.setposition,true;arrModel.getposition.setCheckedtrue;arrSelectedModel.addarrModel.getposition@joan请检查此错误是否出现相同的问题…并且此行中出现错误arrCheckboxState.setposition,true;
 holder.checkBox
            .setOnCheckedChangeListener(new OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                        boolean isChecked) {
                   if(position<arrCheckboxState.size()){
                   if (isChecked) {
                        arrCheckboxState.set(position, true);
                        arrModel.get(position).setChecked(true);
                        arrSelectedModel.add(arrModel.get(position));
                    } else {
                        arrModel.get(position).setChecked(false);
                        arrCheckboxState.set(position, false);
                        arrSelectedModel.remove(arrModel.get(position));
                    }
                   }
                }
            });