1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. euphrisch, 03.12.2011 #1
    euphrisch

    euphrisch Threadstarter Neuer Benutzer

    Hii,

    nun habe ich es nah 2 Tage harte Arbeit endlich geschafft, das aus meiner SQLite Datenbank etwas in einer ListView ausgelesen wird und nun sitze ich schon wieder den halben Tag, ja ganze Nacht durchgemacht daran und ich möchte, 2 Datensätze in die ListView eintragen, also auslesen. Habe mittlerweile keine Idee mehr wie ich dies bewerkstelligen könnte. Aus diesem Grund habe ich mich hier nun neu registriert und hoffe auf eure Hilfe.

    list_item.xml

    Code:
    <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
            <TextView
                            android:id="@+id/testname1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12dip" />
               <TextView
                android:id="@+id/testname2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10dip" />
        </LinearLayout>
    .java

    Code:
    myDB = this.openOrCreateDatabase(the_sql_dbn, MODE_PRIVATE, null);
                Cursor c = myDB.rawQuery("SELECT _id,name1,name2 FROM "+the_sql_dbb_tabelle + ";", null);
            
                startManagingCursor(c);    
                getListView().setOnCreateContextMenuListener(this);
                final SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list_item, c,new String[] { "_id"},new int[] { R.id.testname1});
                                     
                adapter.setViewBinder(new ViewBinder() {               
                    @Override
                public boolean setViewValue(View view, Cursor theCursor, int column) 
                {
                    final String ColNameModel = theCursor.getString(0); 
                    ((TextView)view).setText(ColNameModel);
                    return true;
                }
                });
                this.setListAdapter(adapter);
    So im Grunde möchte ich also nur, dass name2 in die TextView testname2 auch noch eingetragen wird. Wie das allerdings funktioniert, verstehe ich momentan nicht.

    Hat jemand eine Idee?

    Wenn noch Informationen benötigt werden, immer raus damit :>

    Lieben gruß von euphrisch :>
     
  2. Maddi, 05.12.2011 #2
    Maddi

    Maddi Android-Hilfe.de Mitglied

    Einfach mit "theCursor.getString(1)"

    Also etwas:

    testname1.setText(theCursor.getString(0));
    testname2.setText(theCursor.getString(1));

    Gruß Maddi
     
  3. euphrisch, 05.12.2011 #3
    euphrisch

    euphrisch Threadstarter Neuer Benutzer

    Hi,

    ja, einfach ist gut.So einfach finde ich es nicht. Aber danke du hast mich auf eine Idee gebracht. Habe es nun so probiert, aber das klappt auch nicht

    Code:
        final SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list_item, c,new String[] { "_id","name1"},new int[] { R.id.testname1, R.id.testname2});                   adapter.setViewBinder(new ViewBinder() {               
                    @Override
                public boolean setViewValue(View view, Cursor theCursor, int column) {
                  final String ColNameModel = theCursor.getString(0);
                  final String ColNameModel_2 = theCursor.getString(1);
                ((TextView)view).setText(ColNameModel);
                ((TextView)view).setText(ColNameModel_2);
                   
                    return true;
                }
                });
    
    Nun wird nur der zweite Wert also ColNameModel_2 = theCursor.getString(1); in beide TextViews R.id.testname1, R.id.testname2 eingetragen.

    Ich könnte natürlich jetzt einfach den alten Code mehrmals kopieren und dann statt adapter ... adapter1 adapter2 etc verwenden aber das wäre etwas umständlich.

    Wie kann man nun den Code so abändern, dass ColNameModel = theCursor.getString(0); auch in die TextView R.id.testname1 eingetragen wird?

    Ne Idee? :)

    Liebe Grüße
     
    Zuletzt bearbeitet: 05.12.2011
  4. euphrisch, 05.12.2011 #4
    euphrisch

    euphrisch Threadstarter Neuer Benutzer

    Für alle die es noch intressiert habe es nun so gelöst:

    Code:
    adapter.setViewBinder(new ViewBinder() {               
                    @Override
                    public boolean setViewValue(View view, Cursor theCursor, int column) {
                        switch(view.getId()) {
                        case R.id.testname1:
                  final String ColNameModel = theCursor.getString(0);
                  ((TextView)view).setText(ColNameModel);
                  return true;
                       case R.id.testname2:
                           final String ColNameModel_2 = theCursor.getString(1);
                        ((TextView)view).setText(ColNameModel_2);
                        }
                    return true;
                }
                });
     
  5. Maddi, 05.12.2011 #5
    Maddi

    Maddi Android-Hilfe.de Mitglied

    Hm... so würde ich es machen
    myDB = this.openOrCreateDatabase(the_sql_dbn, MODE_PRIVATE, null);
    Cursor c = myDB.rawQuery("SELECT name1,name2 FROM "+the_sql_dbb_tabelle + ";", null);

    startManagingCursor(c);
    String[] columns = new String[] {"name1", "name2" };
    int[] to = new int[] { R.id.testname1, R.id.testname2};
    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.list_example_entry, c, columns, to);
    this.setListAdapter(mAdapter);
     
    euphrisch gefällt das.
  6. euphrisch, 05.12.2011 #6
    euphrisch

    euphrisch Threadstarter Neuer Benutzer

    Super, der Code ist viel kompakter, weiß auch nicht warum ich es so kompliziert geschrieben habe. Ich danke dir :)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Verbindung zu MS SQL DB von App aus möglich? Android App Entwicklung 05.09.2017
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017
[ERLEDIGT] Drawer mit scrollbarem Listview Android App Entwicklung 27.03.2017
Wie bekomme ich Map Markers von einer SQL Datenbank Android App Entwicklung 11.03.2017
Tutorial gesucht (Entwicklung,SQL Verbindung) Android App Entwicklung 03.03.2017
ListView fix am unteren Bildschirmrand ausgeben Android App Entwicklung 01.03.2017
SQL-Abfrage über zwei Tabellen realisieren Android App Entwicklung 12.02.2017
ProgressBar in ListView Android App Entwicklung 03.01.2017
Du betrachtest das Thema "ListView und SQL , komme nicht weiter" im Forum "Android App Entwicklung",