Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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
Android ListView复选框仅单击一次即可选中多个复选框_Android_Listview_Checkbox_Checkboxlist - Fatal编程技术网

Android ListView复选框仅单击一次即可选中多个复选框

Android ListView复选框仅单击一次即可选中多个复选框,android,listview,checkbox,checkboxlist,Android,Listview,Checkbox,Checkboxlist,我试图在我的列表视图中使用复选框,并使用阵列适配器。当我在列表中选择任意复选框时,将自动以随机顺序选择多个条目。谁能告诉我如何避免这种情况 以下是我的代码供您参考: 公共类SearchListAdapterQ2扩展了BaseAdapter{ int layoutId; ArrayList<SearchListView> searchresultList = new ArrayList<SearchListView>(); public static int compan

我试图在我的
列表视图中使用
复选框
,并使用
阵列适配器
。当我在列表中选择任意
复选框时,将自动以随机顺序选择多个条目。谁能告诉我如何避免这种情况

以下是我的代码供您参考:

公共类SearchListAdapterQ2扩展了BaseAdapter{

int layoutId;
ArrayList<SearchListView> searchresultList = new ArrayList<SearchListView>();

public static int companyCpsId;
public static String companyCpsType = "", search_companyName = "",
        search_countryName = "", handShakeStatus = "";
public static String handShakeCPSName = "";
public static boolean searchListAdapter_Q2 = false;
SharedPreferences sharedpreferences;
boolean markfavStatus = false;
ListView searchResults_listView;
Context context;

public SearchListAdapterQ2(Context context, int layoutId,
        ArrayList<SearchListView> searchresultList,
        ListView searchResults_listView) {
    // TODO Auto-generated constructor stub

    this.layoutId = layoutId;
    this.searchresultList = searchresultList;
    Log.i("inside searchListAdapter", "inside searchListAdapter");
    this.context = context;
    sharedpreferences = context.getSharedPreferences("MyPrefs",
            Context.MODE_PRIVATE);
    this.searchResults_listView = searchResults_listView;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    Log.i("searchresultList",
            "searchresultList: " + searchresultList.size());
    return searchresultList.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return searchresultList.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

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

    // LayoutInflater inflater = (LayoutInflater)
    // context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    char color;
    String text = "";
    String address = "";

    LayoutInflater inflater = ((Activity) context).getLayoutInflater();

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.qq_searchlist_repeat_items,
                parent, false);

        holder1 = new ViewHolder1();
        holder1.companyName_textView = (TextView) convertView
                .findViewById(R.id.companyName_textView);
        holder1.companyLogo_textView = (TextView) convertView
                .findViewById(R.id.companyLogo_textView);
        holder1.companyAddress_textView = (TextView) convertView
                .findViewById(R.id.companyAddress_textView);
        holder1.handShakeIcon_imageView = (ImageView) convertView
                .findViewById(R.id.handShakeIcon_imageView);
        holder1.favouritesIcon_imageView = (ImageView) convertView
                .findViewById(R.id.favouritesIcon_imageView);
        holder1.referIcon_imageView = (ImageView) convertView
                .findViewById(R.id.referIcon_imageView);
        holder1.sendEnquiry_imageView = (ImageView) convertView
                .findViewById(R.id.sendEnquiry_imageView);
        holder1.icons_searchResultsPage_relLayout = (RelativeLayout) convertView
                .findViewById(R.id.icons_searchResultsPage_relLayout);
        holder1.chckbx1 = (CheckBox) convertView.findViewById(R.id.chckbx1);

        if (SearchListActivity_Q2.broadcastMode) {
            Log.i("icons_searchResultsPage_relLayout is visible",
                    "icons_searchResultsPage_relLayout is visible");
            holder1.icons_searchResultsPage_relLayout
                    .setVisibility(View.GONE);
            holder1.chckbx1.setVisibility(View.VISIBLE);

        } else {
            holder1.icons_searchResultsPage_relLayout
                    .setVisibility(View.VISIBLE);
            holder1.chckbx1.setVisibility(View.GONE);
        }

        convertView.setTag(holder1);
    } else {
        holder1 = (ViewHolder1) convertView.getTag();
    }
    holder1.id = position;
    search_companyName = searchresultList.get(position).getCpsName();
    search_countryName = searchresultList.get(position).getCountryName();

    try {
        String ssearch_companyName = URLDecoder.decode(search_companyName,
                "UTF-8");
        holder1.companyName_textView.setText(ssearch_companyName);
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    if (searchresultList.get(position).getCpsName().contains(" ")) {
        String[] splitText = searchresultList.get(position).getCpsName()
                .split("\\s+");
        char a = splitText[0].charAt(0);
        char b = splitText[1].charAt(0);
        text = String.valueOf(a) + String.valueOf(b);
        color = b;

    } else {
        text = searchresultList.get(position).getCpsName().substring(0, 1);
        color = searchresultList.get(position).getCpsName().charAt(1);
    }
    holder1.companyLogo_textView.setText(text.toUpperCase());


    if (searchresultList.get(position).getCpsAddress().isEmpty()) {
        address = searchresultList.get(position).getCountryName();
    } else {
        if (searchresultList.get(position).getCpsAddress().length() > 1) {
            address = searchresultList.get(position).getCpsAddress() + ", "
                    + searchresultList.get(position).getCountryName();
        } else {
            address = searchresultList.get(position).getCountryName();
        }
    }
    holder1.companyAddress_textView.setText(address);


    holder1.companyName_textView
            .setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    searchListAdapter_Q2 = true;
                    companyCpsId = searchresultList.get(position)
                            .getCpsId();
                    Log.i("$$$ companyCpsId", "companyCpsId" + companyCpsId);
                    companyCpsType = searchresultList.get(position)
                            .getCpsType();

                    Intent intent = new Intent(context,
                            CompanyProfile_Activity.class);
                    context.startActivity(intent);

                }
            });
    holder1.referIcon_imageView
            .setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                }
            });

    holder1.sendEnquiry_imageView
            .setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    ArrayList<Q2_SendEnquiryList> sendEnquiry = new ArrayList<Q2_SendEnquiryList>();
                    sendEnquiry.add(new Q2_SendEnquiryList(searchresultList
                            .get(position).getCpsId(), searchresultList
                            .get(position).getCpsName()));
                    sendEnquiry.add(new Q2_SendEnquiryList(1, "abcdefgh"));
                    sendEnquiry.add(new Q2_SendEnquiryList(2, "abcdefg"));
                    sendEnquiry.add(new Q2_SendEnquiryList(3, "abcdef"));
                    sendEnquiry.add(new Q2_SendEnquiryList(4, "abcde"));
                    sendEnquiry.add(new Q2_SendEnquiryList(5, "abcd"));
                    sendEnquiry.add(new Q2_SendEnquiryList(6, "abc"));
                    sendEnquiry.add(new Q2_SendEnquiryList(7, "ab"));

                    Intent intent = new Intent(context,
                            Q2_SendEnquiryActivity.class);
                    intent.putParcelableArrayListExtra("sendEnquiry",
                            sendEnquiry);
                    context.startActivity(intent);

                }
            });

    holder1.handShakeIcon_imageView
            .setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    companyCpsId = searchresultList.get(position)
                            .getCpsId();

                    handShakeCPSName = searchresultList.get(position)
                            .getCpsName();

                    handShakeStatus = searchresultList.get(position)
                            .getHandShakeStatus();
                    ConstantVariables.handShakeFromAdapter = true;
                    if (sharedpreferences.getInt("userId_sp", 0) != 0) {
                        if (sharedpreferences.getInt("profileActiveStatus",
                                0) > 0) {
                            if (sharedpreferences.getInt("organizationId",
                                    0) != 0) {
                                if (handShakeStatus.equalsIgnoreCase("d")) {
                                    ConstantVariables
                                            .handShakeRequest(
                                                    context,
                                                    companyCpsId,
                                                    0,
                                                    ConstantVariables.handShakeFromAdapter,
                                                    searchResults_listView,
                                                    position);
                                } else if (handShakeStatus
                                        .equalsIgnoreCase("p")) {
                                    ConstantVariables
                                            .handShakeRequestAccept(
                                                    context,
                                                    companyCpsId,
                                                    1,
                                                    ConstantVariables.handShakeFromAdapter,
                                                    searchResults_listView,
                                                    position,
                                                    handShakeCPSName);
                                }

                            } else {

                                AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                                        context);
                                // Setting Dialog Title
                                // alertDialog.setTitle("Please Add Company");

                                // Setting Dialog Message
                                alertDialog
                                        .setMessage("Please add your company details");

                                // Setting Positive "Yes" Button
                                alertDialog
                                        .setPositiveButton(
                                                "Add",
                                                new DialogInterface.OnClickListener() {
                                                    public void onClick(
                                                            DialogInterface dialog,
                                                            int which) {

                                                        Intent intent = new Intent(
                                                                context,
                                                                Profile_Activity.class);
                                                        context.startActivity(intent);

                                                    }
                                                });

                                // Setting Negative "NO" Button
                                alertDialog
                                        .setNegativeButton(
                                                "Later",
                                                new DialogInterface.OnClickListener() {
                                                    public void onClick(
                                                            DialogInterface dialog,
                                                            int which) {

                                                        dialog.cancel();
                                                    }
                                                });

                                // Showing Alert Message
                                alertDialog.show();

                            }
                        } else {
                            ConstantVariables
                                    .requestEmailVerification(context);
                        }
                    } else {
                        ConstantVariables.requestLogin(context);
                    }

                }
            });

    holder1.favouritesIcon_imageView
            .setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                }
            });

    return convertView;

}

static class ViewHolder1 {
    TextView companyName_textView, companyAddress_textView,
            companyLogo_textView;
    ImageView handShakeIcon_imageView, favouritesIcon_imageView,
            referIcon_imageView, sendEnquiry_imageView;
    CheckBox chckbx1;
    int id;
    RelativeLayout icons_searchResultsPage_relLayout;
}
intlayoutid;
ArrayList searchresultList=新建ArrayList();
公共静态int companyCpsId;
公共静态字符串companycptype=“”,搜索\u companyName=“”,
搜索_countryName=“”,handShakeStatus=“”;
公共静态字符串握手ecpsname=“”;
公共静态布尔searchListAdapter_Q2=false;
SharedReferences SharedReferences;
布尔markfavStatus=false;
ListView搜索结果\u ListView;
语境;
public SearchListAdapterQ2(上下文、int layoutId、,
ArrayList searchresultList,
ListView搜索结果(列表视图){
//TODO自动生成的构造函数存根
this.layoutId=layoutId;
this.searchresultList=searchresultList;
Log.i(“内部searchListAdapter”、“内部searchListAdapter”);
this.context=上下文;
SharedReferences=context.getSharedReferences(“MyPrefs”,
上下文。模式(私人);
this.searchResults\u listView=searchResults\u listView;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
Log.i(“searchresultList”,
searchresultList:“+searchresultList.size());
返回searchresultList.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回searchresultList.get(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图保持器1保持器1;
//LayoutInflater充气机=(LayoutInflater)
//getSystemService(context.LAYOUT\u充气机\u服务);
炭色;
字符串文本=”;
字符串地址=”;
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
if(convertView==null){
convertView=充气机。充气(R.layout.qq\u搜索列表\u重复项目,
父母,假);
holder1=新视图holder1();
holder1.companyName_textView=(textView)convertView
.findviewbyd(R.id.companyName_textView);
holder1.companyLogo\u textView=(textView)convertView
.findViewById(R.id.companyLogo\u textView);
holder1.companyAddress_textView=(textView)convertView
.findViewById(R.id.companyAddress_textView);
holder1.handShakeIcon_imageView=(imageView)convertView
.findviewbyd(R.id.handShakeIcon\u imageView);
holder1.FavoriteSicon_imageView=(imageView)convertView
.findViewById(R.id.FavoriteSicon_imageView);
holder1.referIcon\u imageView=(imageView)convertView
.findViewById(R.id.referIcon\U imageView);
holder1.SendInquiry\u imageView=(imageView)convertView
.findviewbyd(R.id.send\u imageView);
holder1.icons\u searchResultsPage\u relLayout=(RelativeLayout)convertView
.findViewById(R.id.icons\u searchresults页面\u relLayout);
holder1.chckbx1=(复选框)convertView.findViewById(R.id.chckbx1);
if(SearchListActivity_Q2.广播模式){
Log.i(“图标\u搜索结果页面\u布局可见”,
“图标\搜索结果页面\布局可见”);
holder1.icons\u searchresults页面\u rellayou布局
.setVisibility(View.GONE);
holder1.chckbx1.setVisibility(View.VISIBLE);
}否则{
holder1.icons\u searchresults页面\u rellayou布局
.setVisibility(View.VISIBLE);
holder1.chckbx1.setVisibility(View.GONE);
}
convertView.setTag(保持器1);
}否则{
holder1=(ViewHolder1)convertView.getTag();
}
holder1.id=位置;
search_companyName=searchresultList.get(position.getCpsName();
search_countryName=searchresultList.get(position.getCountryName();
试一试{
字符串ssearch\u companyName=URLDecover.decode(搜索\u companyName,
“UTF-8”);
holder1.companyName_textView.setText(ssearch_companyName);
}捕获(不支持的编码异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
if(searchresultList.get(position).getCpsName()包含(“”){
String[]splitText=searchresultList.get(position).getCpsName()
.split(\\s+);
字符a=拆分文本[0]。字符(0);
字符b=拆分文本[1]。字符(0);
text=String.valueOf(a)+String.valueOf(b);
颜色=b;
}否则{
text=searchresultList.get(位置).getCpsName().substring(0,1);
color=searchresultList.get(位置).getCpsName().charAt(1);
}
holder1.companyLogo_textView.setText(text.toUpperCase());
if(searchresultList.get(position.getCpsAddress().isEmpty()){
address=searchresultList.get(位置).getCountryName();
}否则{
if(searchresultList.get(position.getCpsAddress().length()>1){
address=searchresultList.get(位置).getCpsAddress()+“,”
+searchresultList.get(位置).getCountryName();
}否则{
address=searchresultList.get(位置).getCountryName();
}
}
holder1.companyAddress_textView.setText(地址);
holder1.companyName\u文本视图
.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
searchListAdapter_Q2=true;
companyCpsId=searchresultList.g
ArrayList<Integer> checkedPositions = new ArrayList<Integer>();
final Integer index = new Integer(position);
    holder1.chckbx1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            if (((CheckBox) v).isChecked()) {
                // if checked, we add it to the list
                checkedPositions.add(index);
            } else if (checkedPositions.contains(index)) {
                // else if remove it from the list (if it is present)
                checkedPositions.remove(index);
            }

        }
    });
    // set the state of the checbox based on if it is checked or not.
    holder1.chckbx1.setChecked(checkedPositions.contains(index));