2012-03-27 17 views
0

Wenn ich meine ListView mit der Datenbank verbinden, verlor ich die Listview-Stil.android: wenn ich meine ListView mit der Datenbank verbinden verlor ich das Styling

und wenn ich den Stil hinzufügen, sehe ich dieselben Daten auf der gesamten Listview.

public void update_list(String NN) { 
     //HashMap<String,String> item = new HashMap<String,String>(); 

     db_results = new ArrayList<String>(); 
     Cursor cursor = db.rawQuery(NN, null); 
     while(cursor.moveToNext()) { 
      //item.put("line1",String.valueOf(cursor.getString(cursor.getColumnIndex("A")))); 
       //item.put("line2",String.valueOf(cursor.getString(cursor.getColumnIndex("B")))); 
       //item.put("line3",String.valueOf(cursor.getString(cursor.getColumnIndex("C")))); 
       //list.add(item); 
      db_results.add(String.valueOf(cursor.getString(cursor.getColumnIndex("A"))) + "\n" +cursor.getString(cursor.getColumnIndex("B")) + "\n" +cursor.getString(cursor.getColumnIndex("C"))); 
     } 
     cursor.close(); 
       setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,db_results)); 

option1: Wie dieser Code sehe ich die Daten auf meiner Liste, aber ich verlor das Styling.

option2: i un Bemerkung der bemerkte Code, und ich sehe das Styling aber dieselben Daten auf allen der Liste

Antwort

0

Sie würden viel besser dran mit einem benutzerdefinierten Layout zu erstellen und eine SimpleCursorAdapter verwenden, um es zu füllen.

threelinelayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="vertical" > 
    <TextView 
      android:id="@+id/ListItem1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    <TextView 
      android:id="@+id/ListItem2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    <TextView 
      android:id="@+id/ListItem3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
</LinearLayout> 

Adaptercode

Cursor mCursor = db.rawQuery(NN, null); 
this.startManagingCursor(cursor); 

String[] from = new String[] { "A", "B", "C" }; 
int[] to = new int[] { R.id.ListItem1, R.id.ListItem2, R.id.ListItem3 }; 
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(getActivity(), 
      R.layout.threelinelayout, mCursor, from, to); 
setListAdapter(mAdapter);  
+0

Dank für die Hilfe !!! Wohin mit diesem Code (der Adaptercode) Ist das statt oder zusätzlich? – Gali

+0

Sie würden es in Ihrer 'update_list' Methode anstelle dessen verwenden, was Sie jetzt dort haben. Wenn dies für Sie funktioniert, klicken Sie bitte auf das Häkchen, um die Antwort zu akzeptieren. – Barak

+0

Ich habe genau das getan, was Sie tippen, aber es ist ein Fehler aufgetreten: SimpleCursorAdapter mAdapter = new SimpleCursorAdapter (this, R.layout.threelinelayout, mCursor, from, to); – Gali

Verwandte Themen