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 bedankt sich.
  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 - ListView und SQL Forum Datum
[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
ListView fix am unteren Bildschirmrand ausgeben Android App Entwicklung 01.03.2017
ProgressBar in ListView Android App Entwicklung 03.01.2017
ListView Element an eine Datenbank senden Android App Entwicklung 04.12.2016
ListView Items verknüpfen Android App Entwicklung 06.10.2016
AlertDialog Listview mit ContextMenu Android App Entwicklung 01.10.2016
Android Listview Search Filter Android App Entwicklung 03.09.2016
ListView zeigt letzten Eintrag bei LongClickEvent nicht vollständig an Android App Entwicklung 26.08.2016
Rahmen um gleiche Einträge in einer ListView Android App Entwicklung 25.08.2016