下面我使用一个简单的游标适配器将SQLite数据库中的数据插入到textview中。我没有将所有列都传递到单独的标签中,而是希望它们都连接在一起。如何将字符串绑定在一起? (即摆脱label2并使数据库中的两列显示为标签中的一个字符串)
private void fillData() {
Cursor cursor = getContentResolver().query(MyTaskContentProvider.CONTENT_URI, null, null, null,
sort);
String[] from = new String[] { TaskTable.COLUMN_DESCRIPTION, TaskTable.COLUMN_DATE};
int[] to = new int[] { R.id.label, R.id.label2 };
getLoaderManager().initLoader(0, null, this);
adapter = new SimpleCursorAdapter(this, R.layout.task_row, cursor, from,
to, 0);
adapter.setViewBinder(new CustomViewBinder());
setListAdapter(adapter);
}
private class CustomViewBinder implements ViewBinder {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
final int descCol = cursor.getColumnIndex(TaskTable.COLUMN_DESCRIPTION);
if (columnIndex == descCol)
{
int is_desc = cursor.getInt(columnIndex);
if(is_desc != 1)
{
TextView tv1 = (TextView) view.findViewById(R.id.label);
view.setVisibility(View.GONE);
tv1.append(cursor.getString(1));
view.setVisibility(View.VISIBLE);
}
return true;
}
else
{
view.setVisibility(View.VISIBLE);
return false;
}
}
}
答案 0 :(得分:0)
我相信这是你问的问题的答案。
你正在寻找concat方法。
例如:
String concatenatedString = new String().concat(string1+" "+string2);
可替换地:
String string1 = "This";
String string2 = "is a concatenated string";
string1 = string1.concat(" " + string2);
string1现在是“这是一个连接的字符串”
我相信你想要的实例:
String from = new String().concat(TaskTable.COLUMN_DESCRIPTION + " " + TaskTable.COLUMN_DATE);