Autore Topic: Custom Listview con due textView, passaggio dati da database sqlite con query  (Letto 1307 volte)

Offline xixietto

Salve, ho seguito alla lettera il tutorial di Ricky [medio] ListView con layout personalizzato tramite un custom ArrayAdapter - Android Developers Italia
ma ora non so come gestire la mia app

ho problemi ad gestire la classe "private class BackgroundWorker extends AsyncTask ........"
e non ho capito dove inserire le query con i relativi risultati
sapete come fare per aggiungere tramite delle query i valori ricevuti ed inserirli nelle due textview
dovrei avere
textview1 textview2
a 1
b 2
f 5
d 22
h 21
vi posto il mio prolema
Codice (Java): [Seleziona]
public class Salsicce extends Activity {
private DbHelper helper =new DbHelper(this); // private DbHelper helper = null; // helper= new DbHelper(this);
Adapter_Ingredienti adapter_ingredienti;
ListView listView;
EditText editText;
Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.salsicce);
//per settare actionBar
String C = "#ff8823";
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(C))); // impostare colore desiderato actionBar

final SQLiteDatabase db = helper.getReadableDatabase();//sola lettura x fare query

listView = (ListView) findViewById(R.id.listView);
editText = (EditText) findViewById(R.id.editText);
button = (Button) findViewById(R.id.button);
Intent intent = getIntent(); // l'intent di questa activity


String Salsiccia = getPackageName(); //prendere stringa passata
final String id_figlio = intent.getStringExtra(Salsiccia + ".myIn");


adapter_ingredienti = new Adapter_Ingredienti(this, R.layout.row_salsicce,new ArrayList<Ingredienti_salsiccia>());
listView.setAdapter(adapter_ingredienti);
new BackgroundWorker().execute();


//prendere valore edittext cn bottone
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
String Valore = editText.getText().toString();
// verifico se è vuoto
if ( Valore.trim().isEmpty() ) {
// visualizzo un messaggio definito in strings.xml
editText.setError(getText(R.string.errore));
// attivo il controllo
editText.requestFocus();

}
else{
int ValoreIntero = Integer.parseInt(Valore);
float ValoreFloat = Float.parseFloat(Valore);
Log.d("valore edit", (Valore+" " + ValoreIntero+" " + ValoreFloat));

//valore
Cursor a = db.rawQuery("SELECT valore FROM unioneingredienti WHERE idfiglio=?", new String[]{id_figlio});
a.moveToFirst();
final ArrayList<Integer> list_valore = new ArrayList<Integer>();
for (int z = 0; z < a.getCount(); z++) {
Log.d("idpadre", String.valueOf((a.getInt(0)*ValoreIntero)));
list_valore.add(a.getInt(0));
a.moveToNext();


}
}}
});


Cursor c = db.rawQuery("SELECT idingredienti FROM unioneingredienti WHERE idfiglio=?", new String[]{id_figlio});
c.moveToFirst();
final ArrayList<String> listp = new ArrayList<>();

for (int z = 0; z < c.getCount(); z++) {
Cursor r = db.rawQuery("SELECT nome FROM ingredienti WHERE _id=?", new String[]{c.getString(0)});
r.moveToFirst();
for (int i = 0; i < r.getCount(); i++) {
Log.d("idpadre", (r.getString(0) + c.getString(0) + r.getCount()));
listp.add(r.getString(0));
r.moveToNext();
}
c.moveToNext();

final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_salsicce, R.id.textViewList, listp);
listView.setAdapter(adapter);
}










String figlio = intent.getStringExtra(Salsiccia + ".myString");
String id_padre = intent.getStringExtra(Salsiccia + ".myInt");


TextView tv = (TextView) findViewById(R.id.nome);
tv.append(figlio + "\n"); //visualizziamo i dati
// tv.append(id_figlio);
// tv.append("id del padre"+s+"\n");

}

private class BackgroundWorker extends AsyncTask<Void, Ingredienti_salsiccia, Void> {

@Override
protected void onPreExecute() {
// Prima di iniziare a inserire gli elementi svuotiamo l'adapter
adapter_ingredienti.clear();
super.onPreExecute();
}

@Override
protected Void doInBackground(Void... params) {
final SQLiteDatabase db = helper.getReadableDatabase();//sola lettura x fare query
Ingredienti_salsiccia[] people = {
new Ingredienti_salsiccia("Ingrediente", 1),
new Ingredienti_salsiccia("Ingrediente", 2),
new Ingredienti_salsiccia("Ingrediente", 3),
new Ingredienti_salsiccia("Manuela",3) };
// Qui dentro si possono mettere le operazioni che potrebbero
// rallentare il caricamento della listview, come ad sempio il
// caricamento da db degli oggetti


return null;
}

@Override
protected void onProgressUpdate(Ingredienti_salsiccia... values) {
// Aggiungiamo il progresso pubblicato all'adapter
adapter_ingredienti.add(values[0]);
super.onProgressUpdate(values);
}

}
}