Привет всем :) У меня проблема.
Я сделал пользовательский просмотр списка с флажками.Я хочу, чтобы, когда я нажимаю на просмотр списка, флажок включается, и я сделал это:
prodottiList = new ArrayAdapter<String>(this, R.layout.prodotti_row, R.id.maggiore, prodottoArray) {
public View getView(int position, View convertView, ViewGroup parent) {
View adapterView = super.getView(position, convertView, parent);
String item = prodottoArray.get(position);
currentCheckBox = (CheckBox)adapterView.findViewById(R.id.checkBox);
Cursor c2 = myDb.rawQuery("SELECT * FROM selezionati WHERE prodotto='"+item+"'", null);
int selezionatoId = c2.getColumnIndex("prodotto");
while(c2.moveToNext()){
String selezionato = c2.getString(selezionatoId);
currentCheckBox.setChecked(true);
}
c2.close();
listView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long id) {
CheckBox currentCheckBoxSel = (CheckBox)arg1.findViewById(R.id.checkBox);
String valore = prodottoArray.get((int) id);
myDb.execSQL("CREATE TABLE IF NOT EXISTS selezionati (id VARCHAR, prodotto VARCHAR, categoria VARCHAR, lista VARCHAR);");
Cursor c = myDb.rawQuery("SELECT * FROM selezionati WHERE prodotto='"+valore+"' AND lista='"+nomeListaApostrofo+"' ", null);
int conteggio = c.getCount();
if(conteggio == 0){
currentCheckBoxSel.setChecked(true);
myDb.execSQL("INSERT INTO selezionati VALUES ('"+id+"','"+ valore +"','"+ categoria +"','"+ nomeListaApostrofo +"');");
}else{
currentCheckBoxSel.setChecked(false);
myDb.execSQL("DELETE FROM selezionati WHERE prodotto='"+ valore +"' AND lista='"+nomeListaApostrofo+"' AND categoria='"+categoria+"' ;");
myDb.execSQL("DELETE FROM table_"+nomeListaEdit+" WHERE prodotto='"+ valore +"' ;");
myDb.execSQL("DELETE FROM completati WHERE prodotto='"+ valore +"' AND lista='"+nomeListaApostrofo+"' ;");
}
c.close();
}
});
return adapterView;
}
Но если я нажимаю на первые флажки, включаю первый и последний.Если я нажму второй поворот на второй и предпоследний?Зачем ?Большое спасибо и простите за английский