Werte aus Datenbank in verschiedenen Spalten und Zeilen in einer Liste ausgeben

  • Hier zeige ich Euch wie man mehrere Spalten einer Datenbank auslesen und
    diese in einem eigenen Layout ausgeben lassen kann.


    Für dieses Beispiel habe ich ein Layout mit zwei Spalten und zwei Zeilen gewählt.
    wobei sich in der ersten Spalte ein Symbol befindet, das je nach ausgelesenem Wert
    einer Spalte in der Datenbank ein anderes Symbol anzeigt.


    Hier ein erster Eindruck




    activity "fahrzeuge.java"

    Java
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }









    Hilfsfunktion die uns ein Datum im SQL-Format in ein Datum in deutscher Schreibweise umwandelt.

    Java
    private String Datum(String datum){
        	String result = null;
        	if(datum!=null){
        		result = "Zuletzt getankt am: " + datum.substring(8, 10)+"."+datum.substring(5, 7)+"."+datum.substring(0, 4);
        		}
        	else {
        		result="Noch nicht getankt";
        	}
        	return(result);
        }





    fahrzeuge.xml






    Hier noch eine Funktion mit der Sie die Datenbank und die für dieses Bsp. benötigten
    Datenbanktabellen anlegen können.


  • Hallo,
    ich habe ein Problem mit dem Code:
    Eclipse wirft mir zwei Fehlermeldungen aus egal ob ich 1.6 oder 2.0+ als Android-Version ausgewählt habe:


    "The method getListView() is undefined for the type..."
    und
    "The method setListAdapter(SimpleCursorAdapter) is undefined for the type..."


    Wie kriege ich die Methoden ran??



    Viele Grüße


    Joggel

  • Hallo ensacom,


    ich hab mir mal dein Beispiel angeschaut und ich bekomm bei mir einen FC in der App kann das zusammenhängen das ich eine fragment class und activity class?


    Sag mir bescheid was für ein Quellcode ich posten soll!!



    mfg androidseb

  • ensacom war das letzte mal im Februar 2010 hier im Forum aktiv... ich denke es ist unwahrscheinlich, dass er antworten wird :-/

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • Wenn sich das Ding nicht automatisch einblendet, such mal unten die Schaltfläche 'Android'.
    Eventuell musst du noch die Filter deaktivieren oder zumindest anders einstellen.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Tja, das lese ich auch so heraus.


    Kannst du mal testweise den direkten Code zum Datenaufbau vom Threadersteller nehmen und schauen, ob es damit geht?

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«


  • Tja, das lese ich auch so heraus.


    Kannst du mal testweise den direkten Code zum Datenaufbau vom Threadersteller nehmen und schauen, ob es damit geht?

    Das hab ich auch probiert aber es funktioniert nicht :/


    Java
    @Override  protected void onStart() {  super.onStart();
            SQLiteDatabase myDB = null;  try{  myDB = this.openOrCreateDatabase("fang", MODE_PRIVATE, null);  Cursor c = myDB.rawQuery("SELECT _id, " +                    "fangta, " +                    "geffi " +                    "FROM fang", null);            startManagingCursor(c);
     getListView().setOnCreateContextMenuListener(this);
     final SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,                    R.layout.show_fish_frag,                    c,                    new String[]  { "_id", "geffi", "fangta" },  new int[] { R.id.catched_fish, R.id.catched_day }  );
                adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder()            {  @Override                public boolean setViewValue(View view, Cursor theCursor, int column)                {  switch(view.getId()) {  case R.id.catched_fish:                            final String ColNameFish = theCursor.getString(1); //Name ((TextView)view).setText(ColNameFish);  return true;  case R.id.catched_day:                            final String ColCatchday = theCursor.getString(2); //Fangdatum ((TextView)view).setText(ColCatchday);  return true;  }  return false;  } });  this.setListAdapter(adapter);  }finally {  if (myDB != null)                myDB.close(); }  }


    Das sieht im Quellcode so zusammengeklatscht aus warum?

  • Meckert er dann auch das Fehlen der Tabelle an?


    Das sieht im Quelltext vermutlich so hässlich aus, weil du den Standardeditor genommen hast. Der macht oftmals komische Dinge – leider. -.-
    Das Erstellen der Datenbank funktioniert auch ohne Probleme?

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Meckert er dann auch das Fehlen der Tabelle an?


    Das sieht im Quelltext vermutlich so hässlich aus, weil du den Standardeditor genommen hast. Der macht oftmals komische Dinge – leider. -.-
    Das Erstellen der Datenbank funktioniert auch ohne Probleme?

    Ja ist das selbe leider :(
    ok komisch mit den editor.


    Das erstellen funktioniert ohne Probleme. Alles steht in der *.db file drin was reingehört.


    Ich kann dir ja mal die App per PM schicken damit du auch mal schauen kannst oder besser den code?

  • wenn du dich mit datenbanken beschäftigst würde ich dir ein content provider tutorial empfehlen


    Empfehlungen sind nur dann welche, wenn auch konkret eine dabei steht. ;)
    Ich persönlich kenne nur dieses: http://www.vogella.com/articles/AndroidSQLite/article.html


    Aber ich persönlich würde ja sowieso so weit gehen, das Ganze über ein ORM-Wrapper auszulagern. Ich faule Sau. ;D

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!