Autore Topic: Adapter con riferimento esterno  (Letto 416 volte)

Offline cadupper

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • cadupper
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic Tim (32A)
  • Play Store ID:
    cadupper
  • Sistema operativo:
    Ubuntu 10.04
Adapter con riferimento esterno
« il: 29 Maggio 2011, 09:19:59 CEST »
0
Ciao ragazzi, ho un problema serio...
Ho due tabelle definite in sqlite, una con i nomi degli invitati, e una con la lista delle spese.
Nella tabella spese c'è una colonna che  non è altro che l'indice _id della tabella invitati (in pratica per ogni spesa indico qualche invitato l'ha sostenuta)

Il mio problema è che voglio visualizzare su una LV tutte le mie spese, ciascun item sarà fatto da Nome spesal, compratore (qui è il problema) e prezzo
Il fatto è che quando creo un adapter e faccio le associazioni mi va giustamente a stampare l'indice _id dell invitato, non il suo nome...
Ad esempio se gli invitati sono :
Codice: [Seleziona]
1   Anna
2   Bob

una spesa invece di essere rappresentata come
Codice (Java): [Seleziona]
Birra
Buyer:  Bob
Price:  20

viene mostrata come
Codice (Java): [Seleziona]
Birra
Buyer:  2
Price:  20

C'è qualche modo per risolvere il problema? Lascio il codice
Codice (Java): [Seleziona]
db = new AppDB(getApplicationContext());
                db.open();

                c = db.fetchExpensesByEvent(id); // recupero tutta la lista di tutte le spese di un evento

                startManagingCursor(c);

                adapter = new SimpleCursorAdapter(this, R.layout.row_expense, c,
                                new String[] { AppDB.expName, AppDB.expBuyer, AppDB.expPrice },

                                new int[] { R.id.tv_expName, R.id.tv_expBuyerName, R.id.tv_expPrice });

                expensesLv.setAdapter(adapter);

                db.close();

                addExpenseButton = (Button) findViewById(R.id.bu_addExpense);
                addExpenseButton.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {
                                String pkg = getPackageName();
                                Intent myIntent = new Intent(v.getContext(), AddNewExpense.class);
                                myIntent.putExtra(pkg + ".myID", id);
                                startActivityForResult(myIntent, 0);
                        }
                });

Queste le mie tabelle:
Codice (Java): [Seleziona]
// create PEOPLEtable
        private static final String PEOPLE_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS "
                        + peoTable
                        + " ("
                        + peoID
                        + " INTEGER PRIMARY KEY AUTOINCREMENT , "
                        + peoName
                        + " TEXT , "
                        + peoPartic
                        + " INTEGER NOT NULL, FOREIGN KEY ("
                        + peoPartic
                        + ") REFERENCES "
                        + eveTable + " (" + eveID + "))";
Codice (Java): [Seleziona]
// create EXPENSEStable
        private static final String EXPENSES_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS "
                + expTable
                + " ("
               
                + expID
                + " INTEGER PRIMARY KEY AUTOINCREMENT , "
               
                + expName
                + " TEXT , "
               
                + expEvent
                + " INTEGER NOT NULL , "
               

               
                + expBuyer
                + " INTEGER NOT NULL , "
               

               
                + expPrice
                + " REAL)";