Ciao, nella mia applicazione ho bisogno di gestire dei click su un ToggleButton che sta in una row di una listview.
Più nello specifico, ogni row è composta da 2 textview e un togglebutton, e la creazione della view è fatta tramite CustomAdapter, allego un pò di codice:
codice:
public class BuffoArrayAdapter extends ArrayAdapter<ClasseBuffo> {
ArrayList<ClasseBuffo> items;
ToggleButton tb;
ClasseBuffo o;
int pos;
public BuffoArrayAdapter(Context context, int textViewResourceId, ArrayList<ClasseBuffo> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
pos=position;
o = items.get(position);
if (o != null) {
TextView tt = (TextView) v.findViewById(R.id.text1);
TextView bt = (TextView) v.findViewById(R.id.text2);
tt.setText(o.getNome());
bt.setText(o.getCredito());
tb = (ToggleButton)v.findViewById(R.id.toggle);
if(o.getPagato().equals("1")){
tb.setChecked(true);
}
tb.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
if(tb.isChecked()== true){
tb.setChecked(false);
items.get(pos).pagato="0";
}else{
tb.setChecked(true);
items.get(pos).pagato="1";
}
}
});
}
return v;
}
}
La mia idea era di gestire i click direttamente all'interno dell'arrayadapter, ma in questo modo devo dire che viene un macello, per esempio se clicco un togglebutton nella terza riga modifico anche quello nell'ultima, come potrei fare per gestire tutto in maniera corretta ?