Android SimpleCursorAdapter中的子字符串?

Android SimpleCursorAdapter中的子字符串?,android,listview,Android,Listview,这是我试图绑定ListView的ListAdapter 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); 这很有效。但我被困在我想应该很简单的事情上。我想做的是在显示正文的子字符串(比如

这是我试图绑定ListView的ListAdapter

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个字符)时完全显示标题。在这种情况下我该怎么做?我可以直接操纵光标,使其首先返回一个子字符串,还是必须在光标返回值后再操作(在这种情况下,如何操作?)。谢谢你的帮助。

编辑:好的,对不起,我以为你想“获取”正文列的子字符串,但你想“设置”它作为子字符串

在活动上实现
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;
    }
}

编辑:好的,对不起,我以为您想“获取”正文列的子字符串,但您想将其“设置”为子字符串

在活动上实现
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;
    }
}

很抱歉,如果这是一个noob问题,那么我如何将这两个字段绑定到我的ListView?我想当我需要返回一行或一组特定的行时,这里的代码可以正常工作。我可能错了(并且很困惑:-),但我的列表中可能包含了上百项或更多项。我需要获取子字符串,然后将该数据与listview绑定,或者如果必须这样做,那么如何设置适配器?谢谢先生。然而,我不能让它完全像这样工作。但这帮助我找到了正确的方向并找到了解决方案。另外,这可能是因为我的Java知识非常有限,所以我倾向于弄错东西。不管怎样,您的答案和这里的这个线程()解决了问题。@redGREENblue:我必须承认我没有测试确切的代码,但它与我在将文本写入列表项之前在某个活动中修改文本的操作非常相似。我可能有点小错误,但很高兴知道它离你很近,可以帮助你找到适合你的东西。如果这是一个noob问题,很抱歉,但是我如何将这两个字段绑定到我的ListView?我想当我需要返回一行或一组特定的行时,这里的代码可以正常工作。我可能错了(并且很困惑:-),但我的列表中可能包含了上百项或更多项。我需要获取子字符串,然后将该数据与listview绑定,或者如果必须这样做,那么如何设置适配器?谢谢先生。然而,我不能让它完全像这样工作。但这帮助我找到了正确的方向并找到了解决方案。另外,这可能是因为我的Java知识非常有限,所以我倾向于弄错东西。不管怎样,您的答案和这里的这个线程()解决了问题。@redGREENblue:我必须承认我没有测试确切的代码,但它与我在将文本写入列表项之前在某个活动中修改文本的操作非常相似。我可能有点小错误,但很高兴知道它离你很近,可以帮助你找到适合你的东西。