使用SimpleCursorAdapter显示额外的文本

时间:2011-10-04 21:31:17

标签: android

In the Notepad example,它们会显示标题列表。如何更改它以使用较小的字体显示正文文本的第二行?

以下是相关代码:

    private void fillData() {
    // Get all of the rows from the database and create the item list
    Cursor notesCursor = mDbHelper.fetchAllNotes();
    startManagingCursor(notesCursor);

    // Create an array to specify the fields we want to display in the list (only TITLE)
    String[] from = new String[]{NotesDbAdapter.KEY_TITLE};

    // and an array of the fields we want to bind those fields to (in this case just text1)
    int[] to = new int[]{R.id.text1};

    // Now create a simple cursor adapter and set it to display
    SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, R.layout.notes_row, notesCursor, from, to);
    setListAdapter(notes);
}

这是notes_row.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:minWidth="100dp"/>

评论清楚地表明它只显示标题。我希望它能给我一些关于如何显示正文的提示。 (我们不讨论这是否是一个好主意。让我们假设需要完成,因为我正在尝试将Notepad示例调整到我自己的应用程序。)

1 个答案:

答案 0 :(得分:0)

只需在您的行中添加另一个textview:

<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:minWidth="100dp"/>
<TextView android:id="@+id/body" xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:minWidth="100dp"
    android:fontSize="20dp"/>

并将您的方法更改为以下内容:

private void fillData() {
    // Get all of the rows from the database and create the item list
    Cursor notesCursor = mDbHelper.fetchAllNotes();
    startManagingCursor(notesCursor);

    // Create an array to specify the fields we want to display in the list (only TITLE)
    String[] from = new String[]{NotesDbAdapter.KEY_TITLE, NotesDbAdapter.KEY_BODY};

    // and an array of the fields we want to bind those fields to (in this case just text1)
    int[] to = new int[]{R.id.text1, R.id.body};

    // Now create a simple cursor adapter and set it to display
    SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, R.layout.notes_row, notesCursor, from, to);
    setListAdapter(notes);
}

请注意,检索正文列可能不是NotesDbAdapter.KEY_BODY,您应该能够在您的NotesDbAdapter类中查找引用正文列名称的常量并使用它。

另外 - 玩一些字体大小(android:fontSize =)... 20dp可能非常小到你甚至看不到的地方(我没有测试过这个)。