Autore Topic: Ottenere valori da componente dinamico  (Letto 462 volte)

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Ottenere valori da componente dinamico
« il: 21 Ottobre 2013, 16:53:05 CEST »
0
con questo codice inserisco dinamicamente nuove EditText, ora il mio dilemma è.....come ottengo i valori dalle nuove EditText per inserirli nel DB???

Codice (Java): [Seleziona]
public void Add(View v) {
              EditText et=new EditText(cnt);
              LinearLayout dynamic_component = new LinearLayout(this);
              dynamic_component.setOrientation(LinearLayout.VERTICAL);
              dynamic_component.addView(et);
              lineare.addView(dynamic_component);
           
          }    

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Ottenere valori da componente dinamico
« Risposta #1 il: 21 Ottobre 2013, 17:59:41 CEST »
0
Codice (Java): [Seleziona]
if(lineare instanceof ViewGroup) {
  for(int i=0; i<((ViewGroup)lineare).getChildCount(); i++) {
    View nextChild = ((ViewGroup)lineare).getChildAt(i);
      if(nextChild instanceof LinearLayout) {
        View child = ((LinearLayout)nextChild).getChildAt(0);
        if(child instanceof EditText) {
           EditText et = (EditText)child;
           String value = et.getText().toString();
           //...
        }
      }
  }
}

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Re:Ottenere valori da componente dinamico
« Risposta #2 il: 21 Ottobre 2013, 22:05:33 CEST »
0
Di default nell'activity ho una sola EditText, il cui valore lo inserisco in una colonna.

Ora devo aggiungere a quella colonna (FTable.IMPORTO_F)anche  i valori (numerici)che ottengo dalle EditText inserite dinamicamente, non devono essere sommati ma dovrebbe essere creato un record per ogni valore delle EditText....nel mio ContentValues ho questo:

Codice (Java): [Seleziona]
public void insertIntoDb(View v) {
                                     ContentValues cv = new ContentValues();
                                     cv.put(FTable.DATA, strDate);
                                     cv.put(FTable.NOME_F, spinnerForn.getSelectedItem().toString());
                                     cv.put(FTable.IMPORTO_F, Importo.getText().toString());

                                     if(lineare instanceof ViewGroup) {
                                                          for(int i=0; i<((ViewGroup)lineare).getChildCount(); i++) {
                                                            View nextChild = ((ViewGroup)lineare).getChildAt(i);
                                                              if(nextChild instanceof LinearLayout) {
                                                                View child = ((LinearLayout)nextChild).getChildAt(0);
                                                                if(child instanceof EditText) {
                                                                   EditText et = (EditText)child;
                                                                   String value = et.getText().toString();
                                                                   
                                                                   cv.put(FTable.IMPORTO_F, value);