Здесь 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 символов). Как это сделать в этом случае? Могу ли я манипулировать курсором прямо таким образом, чтобы он возвращал подстроку в первую очередь или мне нужно сделать это после того, как курсор вернул значения (в этом случае, как?). Спасибо за помощь.
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;
}
}