2012-04-09 1 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, и при выборе опции просто добавить в список и в то время как отменить выбор удалить его из списка. thats it

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 thanks :) – user1311991