форматирование sqlite для чтения данных из базы данных для соответствия столбцам textview - PullRequest
0 голосов
/ 03 января 2012

У меня есть sqlite db, который я использую для хранения своей информации, и у меня есть четыре заголовка столбца, взвешенных до «1». У меня проблема с чтением данных, так как они объединены в середину и скрывают один из заголовков моих столбцов. Что я делаю не так или есть другой способ отображения информации? Спасибо

Вот код:

вот вид 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);
    }

getdata моего адаптера

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;
    }

1 Ответ

0 голосов
/ 04 января 2012

Я полагаю, что лучшей реализацией является использование SimpleCursorAdapter:

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

Вышеприведенный макет должен содержать 4 TextViews в одном горизонтальном линейном макете (аналогично реализации строки таблицы), from - ваши имена столбцови это идентификаторы 4 TextViews

Затем установите этот адаптер в качестве адаптера ListView, который должен заменить вашу таблицу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...