2012-04-09 61 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