android - 来自 SimpleCursorAdapter 的子字符串?

标签 android listview

这是我试图绑定(bind)我的 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 个字符)时完全显示标题。在这种情况下我该怎么做?我可以直接以某种方式操作游标,以便它首先返回一个子字符串,还是我必须在游标返回值后才这样做(在这种情况下,如何?)。感谢您的帮助。

最佳答案

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

在您的 Activity 上实现 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;
    }
}

关于android - 来自 SimpleCursorAdapter 的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475879/

相关文章:

java - 将大图像保存为 PNG

android - 如何从通用适配器调用 notifyDataSetChanged()

java - 自定义ListView不显示任何内容

android - Firestore 安全规则 : 'request.auth.uid' Is Null With Android Request

java - 由于外部库中的 org.junit.Test 类依赖关系,无法使用 LeakCanary

android - 当以编程方式设置文本时,TextInputLayout 动画与文本重叠

android - 在自定义 ListView 适配器(kotlin)中设置默认突出显示的项目

android - 使用 strings.xml 中的文本和值填充 ListView

android - listview 不在RelativeLayout 内滚动

android - 导航标签 - 滑动标签(固定标签)