2012-04-09 52 views
1

我有一个按钮,单击它可以显示多选对话框。我使用数据库中的值加载对话框。我想跟踪被检查的对话框中的值。我怎么做??是否有可能在最初加载对话框时检查一些服务。 我对ButtonOnClickHandler代码是这样的:Android:在多重选择对话框中跟踪选中的值

class ButtonClickHandler implements View.OnClickListener {  
    public void onClick(View view) { 
     int i=0; 
     List<Service> svc = EditBusinessdh.getServiceList(); 
     Log.v(TAG, "Setting svc size:"+ svc.size() ); 
     serName = new ArrayList<String>(); 
     for(i=0;i<svc.size();i++) 
     { 
     serName.add(svc.get(i).toString());     
     Log.v(TAG, "service ="+svc.get(i)); 
     } 
     showDialog(0); 
    } 
} 

@Override 
protected Dialog onCreateDialog(int id) 
{ 
String[] ser = serName.toString().substring(1,serName.toString().length()-1).split(","); 
return new AlertDialog.Builder(this) 
    .setTitle("Select Services") 
    .setMultiChoiceItems(ser, selected, new DialogSelectionClickHandler()) 
    .setPositiveButton("Ok", new DialogButtonClickHandler()) 
    .create(); 
} 

public class DialogSelectionClickHandler implements DialogInterface.OnMultiChoiceClickListener 
{ 
public void onClick(DialogInterface dialog, int clicked, boolean checked) 
{ 
    String firstSelected= serName.set(clicked, ser.toString()); 
} 
} 


public class DialogButtonClickHandler implements DialogInterface.OnClickListener 
{ 
    public void onClick(DialogInterface dialog, int clicked) 
    { 
    switch(clicked) 
    { 
     case DialogInterface.BUTTON_POSITIVE: 
      closeContextMenu(); 
      break; 

     case DialogInterface.BUTTON_NEGATIVE: 
      break; 
    } 
    } 
} 

@Override 
public void closeContextMenu() { 
    super.closeContextMenu();  
} 

谢谢

回答

2

做一个ArrayList,并同时选择选项只是添加到列表中,并同时取消选择从列表中删除。多数民众赞成它

ArrayList<String> checkedValue= new ArrayList<String>(); 


public void onClick(DialogInterface dialog, int clicked, boolean checked) 
{ 
     if (isChecked) 
      { 
       if(!checkedValue.contains(ser[which])) 
        checkedValue.add(ser[which]); 
      } 
      else 
      { 
       if(checkedValue.contains(ser[which])) 
        checkedValue.remove(ser[which]); 
      } 

} 
+0

@hotverspicy谢谢:) – user1311991 2012-04-09 05:29:23