Autore Topic: popolare EditText da database  (Letto 465 volte)

Offline gaetano_c

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3
  • Sistema operativo:
    Windows 7
popolare EditText da database
« il: 20 Settembre 2014, 12:35:06 CEST »
0
premetto che sono alle primissime armi e mi scuso per le banalità che potrei scrivere.
Come mai le EditText contenute nella activity non si aggiornano dei dati prelevati da database?
ometto alcune righe di codice che ritengo ininfluenti.
i codici sono:
Codice (Java): [Seleziona]
public class imputdati extends Activity

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getActionBar().setDisplayHomeAsUpEnabled(true);
        setContentView(R.layout.imputdati);

        adapter = new CursorAdapter(this, db.getAnagrafica(), false) {
            @Override
            //22 per visualizzare dati del database
            public View newView(Context context, Cursor cursor, ViewGroup viewGroup)
            {
                View v = LayoutInflater.from(context).inflate(R.layout.imputdati, null);
                return v;
            }

            @Override
            public void bindView(View view, Context context, Cursor cursor) {

                EditText et = (EditText) view.findViewById(R.id.txt_PRZ1);
                et.setText(cursor.getString(cursor.getColumnIndex("PRZ")));
                et = (EditText) view.findViewById(R.id.txt_DAT1);
                et.setText(cursor.getString(cursor.getColumnIndex("DAT")));
                et = (EditText) view.findViewById(R.id.txt_SUP1);
                et.setText(cursor.getString(cursor.getColumnIndex("SUP")));
                et = (EditText) view.findViewById(R.id.txt_BAL1);
                et.setText(cursor.getString(cursor.getColumnIndex("BAL")));
                et = (EditText) view.findViewById(R.id.txt_IMP1);
                et.setText(cursor.getString(cursor.getColumnIndex("IMP")));
                et = (EditText) view.findViewById(R.id.txt_SER1);
                et.setText(cursor.getString(cursor.getColumnIndex("SER")));
                et = (EditText) view.findViewById(R.id.txt_STM1);
                et.setText(cursor.getString(cursor.getColumnIndex("STM")));
                et = (EditText) view.findViewById(R.id.txt_LIV1);
                et.setText(cursor.getString(cursor.getColumnIndex("LIV")));
                et = (EditText) view.findViewById(R.id.txt_BOX1);
                et.setText(cursor.getString(cursor.getColumnIndex("BOX")));
                et = (EditText) view.findViewById(R.id.txt_CAN1);
                et.setText(cursor.getString(cursor.getColumnIndex("CAN")));
                et = (EditText) view.findViewById(R.id.txt_CEN1);
                et.setText(cursor.getString(cursor.getColumnIndex("CEN")));
                et = (EditText) view.findViewById(R.id.txt_PAN1);
                et.setText(cursor.getString(cursor.getColumnIndex("PAN")));

                et = (EditText) view.findViewById(R.id.txt_PRZ2);
                et.setText(cursor.getString(cursor.getColumnIndex("PRZ")));
                et = (EditText) view.findViewById(R.id.txt_DAT2);
                et.setText(cursor.getString(cursor.getColumnIndex("DAT")));
                et = (EditText) view.findViewById(R.id.txt_SUP2);
                et.setText(cursor.getString(cursor.getColumnIndex("SUP")));
                et = (EditText) view.findViewById(R.id.txt_BAL2);
                et.setText(cursor.getString(cursor.getColumnIndex("BAL")));
                et = (EditText) view.findViewById(R.id.txt_IMP2);
                et.setText(cursor.getString(cursor.getColumnIndex("IMP")));
                et = (EditText) view.findViewById(R.id.txt_SER2);
                et.setText(cursor.getString(cursor.getColumnIndex("SER")));
                et = (EditText) view.findViewById(R.id.txt_STM2);
                et.setText(cursor.getString(cursor.getColumnIndex("STM")));
                et = (EditText) view.findViewById(R.id.txt_LIV2);
                et.setText(cursor.getString(cursor.getColumnIndex("LIV")));
                et = (EditText) view.findViewById(R.id.txt_BOX2);
                et.setText(cursor.getString(cursor.getColumnIndex("BOX")));
                et = (EditText) view.findViewById(R.id.txt_CAN2);
                et.setText(cursor.getString(cursor.getColumnIndex("CAN")));
                et = (EditText) view.findViewById(R.id.txt_CEN2);
                et.setText(cursor.getString(cursor.getColumnIndex("CEN")));
                et = (EditText) view.findViewById(R.id.txt_PAN2);
                et.setText(cursor.getString(cursor.getColumnIndex("PAN")));

                et = (EditText) view.findViewById(R.id.txt_PRZ3);
                et.setText(cursor.getString(cursor.getColumnIndex("PRZ")));
                et = (EditText) view.findViewById(R.id.txt_DAT3);
                et.setText(cursor.getString(cursor.getColumnIndex("DAT")));
                et = (EditText) view.findViewById(R.id.txt_SUP3);
                et.setText(cursor.getString(cursor.getColumnIndex("SUP")));
                et = (EditText) view.findViewById(R.id.txt_BAL3);
                et.setText(cursor.getString(cursor.getColumnIndex("BAL")));
                et = (EditText) view.findViewById(R.id.txt_IMP3);
                et.setText(cursor.getString(cursor.getColumnIndex("IMP")));
                et = (EditText) view.findViewById(R.id.txt_SER3);
                et.setText(cursor.getString(cursor.getColumnIndex("SER")));
                et = (EditText) view.findViewById(R.id.txt_STM3);
                et.setText(cursor.getString(cursor.getColumnIndex("STM")));
                et = (EditText) view.findViewById(R.id.txt_LIV3);
                et.setText(cursor.getString(cursor.getColumnIndex("LIV")));
                et = (EditText) view.findViewById(R.id.txt_BOX3);
                et.setText(cursor.getString(cursor.getColumnIndex("BOX")));
                et = (EditText) view.findViewById(R.id.txt_CAN3);
                et.setText(cursor.getString(cursor.getColumnIndex("CAN")));
                et = (EditText) view.findViewById(R.id.txt_CEN3);
                et.setText(cursor.getString(cursor.getColumnIndex("CEN")));
                et = (EditText) view.findViewById(R.id.txt_PAN3);
                et.setText(cursor.getString(cursor.getColumnIndex("PAN")));

                et = (EditText) view.findViewById(R.id.txt_PRZs);
                et.setText(cursor.getString(cursor.getColumnIndex("PRZ")));
                et = (EditText) view.findViewById(R.id.txt_DATs);
                et.setText(cursor.getString(cursor.getColumnIndex("DAT")));
                et = (EditText) view.findViewById(R.id.txt_SUPs);
                et.setText(cursor.getString(cursor.getColumnIndex("SUP")));
                et = (EditText) view.findViewById(R.id.txt_BALs);
                et.setText(cursor.getString(cursor.getColumnIndex("BAL")));
                et = (EditText) view.findViewById(R.id.txt_IMPs);
                et.setText(cursor.getString(cursor.getColumnIndex("IMP")));
                et = (EditText) view.findViewById(R.id.txt_SERs);
                et.setText(cursor.getString(cursor.getColumnIndex("SER")));
                et = (EditText) view.findViewById(R.id.txt_STMs);
                et.setText(cursor.getString(cursor.getColumnIndex("STM")));
                et = (EditText) view.findViewById(R.id.txt_LIVs);
                et.setText(cursor.getString(cursor.getColumnIndex("LIV")));
                et = (EditText) view.findViewById(R.id.txt_BOXs);
                et.setText(cursor.getString(cursor.getColumnIndex("BOX")));
                et = (EditText) view.findViewById(R.id.txt_CANs);
                et.setText(cursor.getString(cursor.getColumnIndex("CAN")));
                et = (EditText) view.findViewById(R.id.txt_CENs);
                et.setText(cursor.getString(cursor.getColumnIndex("CEN")));
                et = (EditText) view.findViewById(R.id.txt_PANs);
                et.setText(cursor.getString(cursor.getColumnIndex("PAN")));
            }

            @Override
            public Object getItem(int position) {      
                Cursor crs = getCursor();
                crs.moveToPosition(position);
                String PRZ1 = crs.getString(crs.getColumnIndex("PRZ"));
                String DAT1 = crs.getString(crs.getColumnIndex("DAT"));
                String SUP1 = crs.getString(crs.getColumnIndex("SUP"));
                String BAL1 = crs.getString(crs.getColumnIndex("BAL"));
                String IMP1 = crs.getString(crs.getColumnIndex("IMP"));
                String SER1 = crs.getString(crs.getColumnIndex("SER"));
                String STM1 = crs.getString(crs.getColumnIndex("STM"));
                String LIV1 = crs.getString(crs.getColumnIndex("LIV"));
                String BOX1 = crs.getString(crs.getColumnIndex("BOX"));
                String CAN1 = crs.getString(crs.getColumnIndex("CAN"));
                String CEN1 = crs.getString(crs.getColumnIndex("CEN"));
                String PAN1 = crs.getString(crs.getColumnIndex("PAN"));

                String PRZ2 = crs.getString(crs.getColumnIndex("PRZ"));
                String DAT2 = crs.getString(crs.getColumnIndex("DAT"));
                String SUP2 = crs.getString(crs.getColumnIndex("SUP"));
                String BAL2 = crs.getString(crs.getColumnIndex("BAL"));
                String IMP2 = crs.getString(crs.getColumnIndex("IMP"));
                String SER2 = crs.getString(crs.getColumnIndex("SER"));
                String STM2 = crs.getString(crs.getColumnIndex("STM"));
                String LIV2 = crs.getString(crs.getColumnIndex("LIV"));
                String BOX2 = crs.getString(crs.getColumnIndex("BOX"));
                String CAN2 = crs.getString(crs.getColumnIndex("CAN"));
                String CEN2 = crs.getString(crs.getColumnIndex("CEN"));
                String PAN2 = crs.getString(crs.getColumnIndex("PAN"));

                String PRZ3 = crs.getString(crs.getColumnIndex("PRZ"));
                String DAT3 = crs.getString(crs.getColumnIndex("DAT"));
                String SUP3 = crs.getString(crs.getColumnIndex("SUP"));
                String BAL3 = crs.getString(crs.getColumnIndex("BAL"));
                String IMP3 = crs.getString(crs.getColumnIndex("IMP"));
                String SER3 = crs.getString(crs.getColumnIndex("SER"));
                String STM3 = crs.getString(crs.getColumnIndex("STM"));
                String LIV3 = crs.getString(crs.getColumnIndex("LIV"));
                String BOX3 = crs.getString(crs.getColumnIndex("BOX"));
                String CAN3 = crs.getString(crs.getColumnIndex("CAN"));
                String CEN3 = crs.getString(crs.getColumnIndex("CEN"));
                String PAN3 = crs.getString(crs.getColumnIndex("PAN"));

                UnitàInfo ui = new UnitàInfo(PRZ1, DAT1, SUP1, BAL1, IMP1, SER1, STM1, LIV1, BOX1, CAN1, CEN1, PAN1,
                        PRZ2, DAT2, SUP2, BAL2, IMP2, SER2, STM2, LIV2, BOX2, CAN2, CEN2, PAN2,
                        PRZ3, DAT3, SUP3, BAL3, IMP3, SER3, STM3, LIV3, BOX3, CAN3, CEN3, PAN3);
                return ui;
            }
        };
mentre la query è
Codice (Java): [Seleziona]
 public Cursor getAnagrafica() {
        SQLiteDatabase db = helper.getReadableDatabase();  
        Cursor crs = db.query("anagrafica", null, null, null, null, null, null);
        return crs;
    }
allego Screenshot dell'emulatore per meglio rappresentare l'activity che contiene le EditText.
grazie a chi vorrà aiutarmi anche con semplici indirizzi.
« Ultima modifica: 21 Settembre 2014, 13:44:16 CEST da gaetano_c »

Offline Aaaaabbbb

  • Utente junior
  • **
  • Post: 55
  • Respect: +3
    • Google+
    • pietmau
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7, Samsung GT-S5830i, LG Optimus, Galaxy Tab 3
  • Play Store ID:
    aaaaaaaaaaaa
  • Sistema operativo:
    Win, Ubuntu
Re:aggiornamento EditText da database
« Risposta #1 il: 20 Settembre 2014, 12:48:11 CEST »
0
Ciao Gaetano,
Vedo due problemi:
- la query che fai non è corretta, dubito che ti restituisca qualcosa;
- non so perchè fai l'override di newView(), bindView() e getItem(), per le tue esigenze ad occhio direi che è sufficiente fare l'override di getView() (e NON fare l'override di newView(), bindView() e getItem())

Guardati un tutorial su SQLite e uno sulle ListView e fammi sapere se hai bisogno di aiuto.

Ciao!!

Offline gaetano_c

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3
  • Sistema operativo:
    Windows 7
Re:aggiornamento EditText da database
« Risposta #2 il: 21 Settembre 2014, 02:48:01 CEST »
0
Grazie mille ti terrò aggiornato Maurizio

Post unito: 21 Settembre 2014, 12:27:25 CEST
gentile Maurizio
purtroppo vado in confusione perchè nei tutorial si parla sempre di popolare ListView e conseguentemente si parla di CursorAdapter e di View e BindView.
Non trovo riferimenti per popolare le EditText, che giacciono in un RelativeLayout, con dati prelevati da db.
ho già realizzato una listView popolata da db con il cursor Adapter  ma con l'estensione della classe ListActivity e funziona bene.
saluti e grazie.
« Ultima modifica: 21 Settembre 2014, 12:27:25 CEST da gaetano_c, Reason: Merged DoublePost »