Подстрока из SimpleCursorAdapter?

1

Здесь ListAdapter, с которым я пытаюсь связать свой ListView с.

ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.my_item,c,new String[] {"title","body"},
new int[] { R.id.TextView_Title,R.id.TextView_Body});
setListAdapter(adapter);

Это работает. Но я застрял в том, что я думаю, должно быть очень просто. То, что я хочу сделать, - полностью отобразить заголовок, пока я показываю подстроку тела (скажем, первые 10/15 символов). Как это сделать в этом случае? Могу ли я манипулировать курсором прямо таким образом, чтобы он возвращал подстроку в первую очередь или мне нужно сделать это после того, как курсор вернул значения (в этом случае, как?). Спасибо за помощь.

Теги:
listview

1 ответ

1
Лучший ответ

EDIT: ОК, извините, я думал, что вы хотите "получить" подстроку столбца тела, но вы хотите "установить" его как подстроку

Внесите SimpleCursorAdapter.ViewBinder в свою активность и переопределите setViewValue().

В какой-то момент вашего кода вам нужно будет использовать...

adapter.setViewBinder(this); // Put this on onCreate() perhaps

... и код будет похож на этот...

public class MyActivity extends Activity
    implements SimpleCursorAdapter.ViewBinder {

    @Override
    public boolean setViewValue(View view, Cursor cursor, int column) {
        int bodyColumn = cursor.getColumnIndex("body");
        if (column == bodyColumn) {
            String bodyString = cursor.getString(bodyColumn);
            ((TextView)view).setText(bodyString.subString(0, 10));

            return true; // Return true to show you've handled this column
        }
        return false;
    }
}
  • 0
    Извините, если это нубский вопрос, но как мне связать эти два поля с моим ListView? Я думаю, что код здесь будет работать нормально, когда мне нужно вернуть один или определенный набор строк. Я могу ошибаться (и растерялся :-) Но мой список может содержать сотни и более элементов. Мне нужно получить подстроку, а затем связать эти данные со списком, или, если мне нужно сделать это таким образом, то как мне установить адаптер?
  • 0
    @redGREENblue: Извините - смотрите мои изменения выше.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню