2012-01-03 6 views
0

私はsqlite dbを持っています。私の情報を格納するために使用しています。私はそれを一括して真ん中に集め、私の列の見出しの一つを隠すので、データを読むのに問題があります。何が間違っているのですか、情報を表示する別の方法がありますか?おかげ書式設定sqliteは、textview列と一致するようにdbからデータを読み込みます。

ここでは、コードは次のとおりです。

ここでは、ビューのXMLここ

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TableLayout 
     android:id="@+id/tableLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <TableRow > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Date" /> 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Time" /> 

      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Hair Wash" /> 

      <TextView 
       android:id="@+id/textView4" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Comments" /> 
     </TableRow> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="get info from db" /> 
    </TableLayout> 

</LinearLayout> 

は、ビューのjavaは

protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.bathreport); 
     TextView tv = (TextView) findViewById(R.id.textView3); 
     MyDBAdapter info = new MyDBAdapter(this); 
     info.open(); 
     String data = info.getData(); 
     info.close(); 
     tv.setText(data); 
    } 

マイアダプタの函

public String getData() { 
     String[] columns = new String[] { /*KEY_ROWID,*/ KEY_BATHDATE, 
       KEY_BATHTIME, KEY_HAIRWASH, KEY_COMMENTS }; 
     Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, 
       null, null); 
     String result = "\n"; 
     //int iRow = c.getColumnIndex(KEY_ROWID); 
     int iDate = c.getColumnIndex(KEY_BATHDATE); 
     int iTime = c.getColumnIndex(KEY_BATHTIME); 
     int iHair = c.getColumnIndex(KEY_HAIRWASH); 
     int iCom = c.getColumnIndex(KEY_COMMENTS); 

     for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { 
      result = result + /*c.getString(iRow) + " " +*/ c.getString(iDate) 
        + " " + c.getString(iTime) + " " + c.getString(iHair) + " " 
        + c.getString(iCom) + "\n"; 
     } 

     return result; 
    } 
+0

誰でも知っていますか? – Intelwalk

答えて

0

です私は推測しますより良い実装SimpleCursorAdapter使用することである:上記のレイアウトは(あなたのテーブルの行の実装と同様に)一の水平線形レイアウト4 TextViewsを含むべきである

SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) 

あなたの列の名前であり、4 TextViewsのIdsがあるから

このアダプタは、テーブルを置き換えるListViewのアダプタとして設定してください。

関連する問題