Как к полужирным определенным элементам от Базы данных с помощью SimpleCursorAdapter

У меня есть основной вид деятельности, который берет элементы от базы данных и отображает их в активируемом по щелчку listview. Я использую этот метод для выполнения задачи:

private void fillData() {
    // Get all of the notes from the database and create the item list
    Cursor c = RequestManager.getRequests(getApplicationContext());
    startManagingCursor(c);
    String[] from = new String[] { DataBase.KEY_TITLE, DataBase.KEY_BODY };
    int[] to = new int[] { R.id.text1, R.id.text2 };

    // Now create an array adapter and set it to display using our row
    SimpleCursorAdapter notes =
        new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
    setListAdapter(notes);
}

Я задаюсь вопросом, действительно ли возможно получить доступ к булеву полю в базе данных, и полужирный, определенный элемент является полем, отмечен как непрочитанный? Элементы - каждый в textview и затем помещаются в listview.Спасибо

Править: Используемый предложение для расширения Класса CursorAdapter, но когда любой элемент в списке является полужирным, первый элемент является также полужирным. После того как все элементы отмечены как чтение, первый элемент возвращается к неполужирному. Какие-либо идеи?

    public void bindView(View view, Context context, Cursor cursor) {
    TextView textRequestNo = (TextView) view.findViewById(R.id.text1);
    TextView textMessage = (TextView) view.findViewById(R.id.text2);
    StringBuilder requestNo = new StringBuilder(cursor.getString(cursor
            .getColumnIndex("requestNo")));
    StringBuilder message = new StringBuilder(cursor.getString(cursor
            .getColumnIndex("Message")));

    textRequestNo.setText(requestNo);
    textMessage.setText(message);
    if (cursor.getString(cursor.getColumnIndex("Read")).equals("false"))
    {
        textRequestNo.setTypeface(null, Typeface.BOLD);
        textMessage.setTypeface(null, Typeface.BOLD);
    }   
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    final View view = mInflater.inflate(R.layout.notes_row, parent, false);
    bindView(view, context, cursor);
    return view;
}
1
задан mbauer14 8 July 2010 в 17:53
поделиться

1 ответ

К сожалению, я думаю, что вам придется реализовать свой собственный CursorAdapter, чтобы достичь этой функциональности. Хотя это не так уж плохо; вы можете сделать подкласс ResourceCursorAdapter, а затем все, что вам нужно сделать, это написать собственную реализацию bindView(). Внутри этой реализации вы можете читать курсор, чтобы определить, следует ли выделить строку жирным шрифтом или нет.

2
ответ дан 2 September 2019 в 23:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: