1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. ensacom, 16.05.2009 #1
    ensacom

    ensacom Threadstarter Android-Hilfe.de Mitglied

    Hallo, kann mir einer ein kleines Beispiel dafür geben, wie ich mit meinem Programm erst eine SQLite-DB anlegen und dann lesend und schreibend darauf zugreifen kann?

    Ich möchte Eingaben in ein Textfeld in die Datenbank schreiben und anschließend die Werte in einer Liste ausgeben.

    Bitte ganz was einfaches, aus dem notes-Tutorial steige ich nicht ganz durch weil das einfach zu umfangreich ist.

    Danke schon mal.
     
  2. ensacom, 17.05.2009 #2
    ensacom

    ensacom Threadstarter Android-Hilfe.de Mitglied

    Kann mir da wirklich keiner helfen?
     
  3. ensacom, 18.05.2009 #3
    ensacom

    ensacom Threadstarter Android-Hilfe.de Mitglied

    Ich habe es nun geschafft eine Datenbank anzulegen, Tabellen darin anzulegen, Daten in eine Tabelle zu schreiben und diese Daten auch wieder auszulesen.

    Kann bitte jemand den Source durchschauen und mir Tipps geben was man besser machen könnte und was nicht so gut ist?



    Haupt-Activity
    Code:
    public class ensacom1 extends Activity {        
        SQLiteDatabase myDB = null; 
        final static String MY_DATABASE_NAME = "tankpro";
        final static String MY_DATABASE_TABLE = "fahrzeuge";
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            onCreateDBAndDBTabled(); //DB und Tables erstellen wenn noch nicht vorhanden
            setContentView(R.layout.main);
        }
    
    
        private void onCreateDBAndDBTabled()
        {
            myDB = this.openOrCreateDatabase(MY_DATABASE_NAME, MODE_PRIVATE, null);
            myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DATABASE_TABLE
                            + " (id integer AUTO_INCREMENT PRIMARY KEY, name varchar(100), model varchar(100), bemerkungen varchar(255), kraftstoffart varchar(100))"
                            +";");
        }
    
    Activity Fahrzeug_New
    Code:
    //Klick auf einen Menüpunkt
        public boolean onOptionsItemSelected(MenuItem item){
            switch (item.getItemId()) {
            case MENU_SAVE:
                EditText KfzName = (EditText)findViewById(R.id.ed_fahrzeugname);
                EditText KfzModel = (EditText)findViewById(R.id.ed_fahrzeugmodel);
                EditText KfzBemerkungen = (EditText)findViewById(R.id.ed_fahrzeugbemerkung);
                Spinner KfzKraftstoffart = (Spinner)findViewById(R.id.cb_Kraftstoffarten);
                    
                InsertToDB(KfzName.getText().toString(), KfzModel.getText().toString(), KfzBemerkungen.getText().toString(), KfzKraftstoffart.getSelectedItem().toString());
                Intent ifahrzeuge = new Intent(this, fahrzeuge.class);
                startActivity(ifahrzeuge);
                return true;    
            }
            return false;
        }
    
    
    //Neues Fahrzeug in DB speichern       
        public void InsertToDB(String kfzName, String kfzModel, String kfzBemerkungen, String kfzKraftstoffart)
        {
            SQLiteDatabase myDB = null;
            try {
                myDB = this.openOrCreateDatabase(ensacom1.MY_DATABASE_NAME, MODE_PRIVATE, null);    
                myDB.execSQL("INSERT INTO "+ensacom1.MY_DATABASE_TABLE+" (name, model, bemerkungen, kraftstoffart) "
                                                       +"VALUES ('"+kfzName+"','"+kfzModel+"','"+kfzBemerkungen+"','"+kfzKraftstoffart+"');");
            }
            finally
            {
                if (myDB != null)
                    myDB.close();
            }
        }
    

    Activity fahrzeuge
    Code:
    public class fahrzeuge extends ListActivity {
        SQLiteDatabase myDB = null; 
        ArrayList<String> results = new ArrayList<String>();  
        
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            
            myDB = this.openOrCreateDatabase(ensacom1.MY_DATABASE_NAME, MODE_PRIVATE, null);        
            Cursor c = myDB.rawQuery("SELECT name, model FROM " + ensacom1.MY_DATABASE_TABLE + ";", null);
            int kfzNameColumn  = c.getColumnIndex("name");
            int kfzModelColumn = c.getColumnIndex("model");
            startManagingCursor(c);
            c.moveToFirst();
         
            if (c != null) {
              if (c.isFirst()) {
                     int i = 0;
                  
                     do {
                          i++;
         
                          String kfzname = c.getString(kfzNameColumn);
                          String kfzmodel = c.getString(kfzModelColumn);
                          results.add(kfzname + " - " + kfzmodel);
                     } while(c.moveToNext());
                  }
            }
            this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
        }
    
    Für Tipps was ich besser machen könnte wäre ich sehr dankbar
     
    deimos, walla und Asfaloth haben sich bedankt.

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. mit button werte in sqlite schreiben

    ,
  2. lesen und schreiben datenbank