2016-08-20 53 views
0

我给阵列选择通过警告对话框我想禁用选择多个选项,如果数组满禁用复选框项目在alertDialog

我已经能够停止添加项目阵列到达极限,但不能后禁用复选框

AlertDialog.Builder builder=new AlertDialog.Builder(this); 
View view=inflater.inflate(R.layout.dialog_genre,null,false); 
builder.setView(view).setTitle("Select Genres"); 

builder.setMultiChoiceItems(array, checkedGenres, new DialogInterface.OnMultiChoiceClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
      if(isChecked) { 
       if (!selectedgenre.contains(String.valueOf(which))) 
        if(selectedgenre.size()<5) 
       { 
        selectedgenre.add(String.valueOf(which)); 
        checkedGenres[which]=true; 
       } 
       else{ 
         Toast.makeText(getApplicationContext(),"you can't add more genres",Toast.LENGTH_LONG).show(); 
        } 
      } 
      else if (selectedgenre.contains(String.valueOf(which))) 
      { 
      selectedgenre.remove(String.valueOf(which)); 
      checkedGenres[which]=false; 
     } 
    } 
} 

enter image description here

回答

0

好吧,我已经解决了这个问题,两天后我才知道禁用复选框漫长而忙碌的过程,但我们可以禁止的选择,这就是我想做的事。这里是我的解决方案

builder.setMultiChoiceItems(array, checkedGenres, new DialogInterface.OnMultiChoiceClickListener() { 
     int count = 0; 
     @Override 
     public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
      if(isChecked) { 
       if (!selectedgenre.contains(String.valueOf(array[which]))) 
        if(selectedgenre.size()<5) 
       { 
        selectedgenre.add(String.valueOf(array[which])); 
        checkedGenres[which]=true;      
       } 
       else{ 
         count--; 
         ((AlertDialog) dialog).getListView().setItemChecked(which, false); 
         checkedGenres[which]=false; 
         Toast.makeText(getApplicationContext(),"you can't add this genre",Toast.LENGTH_LONG).show(); 
        } 
      } 
      else if (selectedgenre.contains(String.valueOf(array[which]))) 
      { 
       selectedgenre.remove(String.valueOf(array[which])); 
       checkedGenres[which]=false; 
      } 
     } 
    } 
0
builder.setMultiChoiceItems(array, checkedGenres, new DialogInterface.OnMultiChoiceClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
       if(isChecked) { 
        if (!selectedgenre.contains(String.valueOf(which))) 
         if(selectedgenre.size()<5) 
        { 
         selectedgenre.add(String.valueOf(which)); 
         checkedGenres[which]=true; 
        } 
        else{ 
         //set your checkbox to false here 
         //yourCheckbox.setchecked(false); 
          Toast.makeText(getApplicationContext(),"you can't add more genres",Toast.LENGTH_LONG).show(); 
         } 
       } 
       else 
       { 
       selectedgenre.remove(String.valueOf(which)); 
       checkedGenres[which]=false; 
      } 
     } 
    } 

这一尝试..问题在你的其他部分

+0

我要禁用的选择,即别人的'如果(selectedgenre.size()<5)' – rookieDeveloper

+0

没有得到你想要做的.. –

+0

如果我的计数达到什么5我要禁用复选框,用户应该能够选择,你可以看到图像甚至达到5被允许选择 – rookieDeveloper

0

在您的其他部分,在您的复选框上放置可点击的false,并更改颜色以便用户识别它。

+0

我该怎么做之后? – rookieDeveloper