【问题标题】:android - hidden field in listview, using custom cursoradapterandroid - 列表视图中的隐藏字段,使用自定义光标适配器
【发布时间】:2014-03-07 23:37:06
【问题描述】:

在我的应用程序中,我有一个列表视图,当您单击一个项目时,我希望显示一个包含详细信息的对话框片段。列表视图是使用自定义光标适配器填充的,每一行都是从相对布局扩展而来的视图。

我的思考过程是,我将在自定义视图中具有某种ID值,并且在选择新的DB查询中使用ID来填充对话范围。但是,我不想在行中查看 id,我希望它隐藏。

我在想我创建了一个自定义视图类,从 relativelayout 扩展而来,并且在视图中是一个包含 id 以及两个文本视图的字段。

我的主要问题是如何在适配器中使用我的自定义视图。我发现的每个示例都会在 newview 中扩展 xml 布局,但我的 xml 布局不会包含 id 字段。

我可以在 newview 中为我的视图创建一个新对象,而不是膨胀一个 xml 吗?

还是我遗漏了一些明显的东西?

谢谢

【问题讨论】:

  • 你想在哪里使用 id ?在 onItemClick 中?如果是这样,已经有 id 传递给那里的侦听器(最后一个 long)它是来自光标的 _id 字段的值
  • 在 onItemClick(with CursorAdapter) 你也可以使用Cursor c = (Cursor)parent.getItemAtPosition(position); ...现在在c你有光标指向选定/点击的行...现在你可以做var = c.getInt/String/etc(c.getColumnIndex("column that is not showed in item view but is in the cursor"))跨度>
  • 是的,我想在 onItemClick 中使用 id。这一切听起来真的很有希望,让我现在试试,让你知道我是怎么走的。如果可行,您可以将其发布为答案,我会接受。谢谢
  • 两个示例都运行良好,虽然能够访问所有游标信息很方便,但我认为 last long 的 _id 对于 ,y 情况来说已经足够了。请添加答案,以便我接受
  • @Selvin - 请将您的 cmets 放入答案中,以便我接受它们

标签: android android-custom-view android-cursoradapter


【解决方案1】:

当您在onItemClick(AdapterView<?> parent, View view, int position, long id) 实现AdapterView.OnItemClickListener 中使用CursorAdapter 时,您可以获得:

  1. 来自底层 Cursor 的 _id 列 - 简单地说,它就是此函数的 long id 参数
  2. 任何列在您的项目视图中可见或不可见但存在于游标中,方法是将位置上的项目投射到游标上,例如:

    Cursor c = (Cursor)parent.getItemAtPosition(position);

    现在c 指向选定的行,因此您可以从中获取任何列,就像var value = c.getInt/String/etc(c.getColumnIndex("columnname")); 一样简单

【讨论】:

    【解决方案2】:

    好像你可以使用标签,这样会更简单。

    view.setTag("myId");
    // ...
    String id = (String) view.getTag();
    

    【讨论】:

    • 是的,谢谢,但我将使用上面 Selvin 给出的方法。不过谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2013-02-11
    • 1970-01-01
    相关资源
    最近更新 更多