我在具有这种结构的数据库中保存了一些值:
Name1-Group1
Name2-Group2
...
现在,我需要加载这些值以在列表视图中显示它们,但我只需要显示名称。从数据库中删除Group值不是解决方案,因为我需要此值来进行排序可用性。
所以,这是我从数据库加载名称的方式:
cursor = getContentResolver().query(TravelOrderProvider.CONTENT_URI, PROJECTION, selection, arguments, order);
然后这就是我绑定listview的方式:
ListAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor,
new String[] {TravelOrder.NAME}, new int[] {android.R.id.text1});
listView.setAdapter(mAdapter);
但在绑定它们之前,正如我之前所说,我需要获取名称,将它们拆分为只有名称,没有组,并将它们绑定在列表视图上。
所以,我不知道怎么做的是如何从适配器中获取值以使用它们(拆分它们)然后再次在适配器中获取它们。
答案 0 :(得分:1)
试试这个
ListAdapter mAdapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
cursor,new String[] {TravelOrder.NAME},
new int[]{android.R.id.text1});
mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor,int columnIndex) {
if(view.getId() == android.R.id.text1)
{
TextView tvName= (TextView) view;
//do as you want split here
String[] separated = cursor.getString(columnName).split("-");
separated[0]; // this will contain "Name"
separated[1]; // this will contain "Group"
tvName.setText(separated[0]);
return true;
}
return false;
}
});
listView.setAdapter(mAdapter);