android - 是否可以向 SimpleCursorAdapter 添加附加列

标签 android simplecursoradapter

我已成功使用 SimpleCursorAdapter 列出显示名称和值(都在我的数据库中)并将它们显示在我的列表 Activity 中。

我现在要做的是为列表 Activity 中的每个项目添加一个新 View (ImageView)。它最终应该看起来像这样。

Image_1_NotInDB -- DisplayName1FromDB -- DisplayName1FromDB
Image_2_NotInDB -- DisplayName2FromDB -- DisplayName2FromDB.

图像将有所不同(基于 DisplayName1FromDB)。我认为 SimpleCursorAdapter 不再适用于此目的。

我尝试创建一个扩展 SimpleCursorAdapter 的 customSimpleCursorAdapter 并尝试使用“newView”和“bindView”方法来实现。我几乎遵循了这个:Custom CursorAdapters .

问题是;我使用的图像是基于 DB 的值(我打算将其传递给构造函数或 customSimpleCursorAdapter)

public View newView(Context pContext, Cursor pCursor, ViewGroup pParent)
{
    Cursor lCursor = getCursor();
    final LayoutInflater inflater = LayoutInflater.from(pContext);
    View lView = inflater.inflate(layout, pParent, false);
    int lImage = "dog".equals(variable) ? R.drawable.dog : R.drawable.cat;
    // "variable" is a member variable (set at the constructor)
    ImageView lImageView = (ImageView) lView.findViewById(R.id.appImage);
    if (lImageView != null)
    {
        lImageView.setImageResource(lImage);
    }
    return pParent;
}

public void bindView(View pView, Context pContext, Cursor pCursor)
{
    int lImage = "dog".equals(variable) ? R.drawable.dog : R.drawable.cat;
    // "variable" is a member variable (set at the constructor)
    ImageView lImageView = (ImageView) lView.findViewById(R.id.appImage);
    if (lImageView != null)
    {
        lImageView.setImageResource(lImage);
    }
}

这就是我尝试使用“customSimpleCursorAdapter”的方式

    String[] lDisplay = new String[] {KEY_NAME, KEY_TIME};
    int[] lValues = new int[] {R.id.name, R.id.time};
    CustomRowCursorAdapter lCursorAdapter = new CustomRowCursorAdapter(this, R.layout.row, lSTime, lDisplay, lValues, "MY IDEA WAS TO PASS THE ANIMAL NAME HERE, BUT NOT LUCK as I am not sure How ");
    lCursorAdapter.newView(this, lSTime, getListView());
    lCursorAdapter.bindView(getListView(), this, lSTime);
    setListAdapter(lCursorAdapter);

ArrayAdapter 是答案吗?如果是,您能否分享您将传递给它的哪些参数?

最佳答案

我建议去定制适配器

关于android - 是否可以向 SimpleCursorAdapter 添加附加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055525/

相关文章:

android - 带有输入类型密码的 Edittext 在 Nexus 设备上不显示正确的字体

android - 最适合开发的 Android 手机?

android - 设置SeekBar的进度颜色为透明

android - ListView 内容不会使用 SimpleCursorAdapter 显示,除非我单击/点击列表项

android - 使用 SimpleCursorAdapter.ViewBinder 在 Listview 中更改文本颜色

android - 在堆栈跟踪中没有应用程序代码的 ListView 中滚动时的 IndexOutOfBounds

java - 构造函数 BitmapDrawable() 已弃用修复

Android上下文菜单项大小/高度,如何更改?

android - 根据光标结果更改 ListView 项的背景颜色

自定义 cursorAdapter 的 android newView/bindView 未调用