在ListView中唯一标识项目的元素

时间:2016-04-14 19:53:59

标签: java android listview

你能帮我找到一个特定项目的textView吗?例如,我有一个带有一些项目的listView,每个项目都由3个textViews(名称,价格,描述)组成。现在我想改变"价格"的价值。 textView with和updateView(int index)方法。如何在正确的项目中识别正确的textView?

我们说我有5个项目(product1,...,product5)。 现在我想更新第3个产品(product3)的价格。 我打电话给updateView(3) 到目前为止我的updateView(int index)方法

private void updateView(int index){
    // thats how I get the row
    View v = lvProduct.getChildAt(index); 
    // now I want to find the tvPrice in that row
    // but I'm not sure how to go about this
}

任何提示都会很棒:D

1 个答案:

答案 0 :(得分:0)

我通常采用的方法是执行以下操作:

  • 为您的列表项创建一个模型(现在人们更喜欢使用RecyclerView) - 当然模型将包含表示您想要显示内容的字段/变量(如3个字符串)。
  • 现在,为了实际跟踪用户点击的项目,我可以通过调用我的适配器中的自定义方法(例如getItem(int position))来获取该项目的id(数据库中存储此项目的表的列) )返回实际项目。
  • getItem方法将返回一个带有getId()getter方法的项目。
  • 现在请注意,当您创建列表项以传递给自定义适配器时,列表项模型必须在其构造函数中期望(id)值,因为这样您将能够访问表中的实际值编辑。
  • 然后,您使用点击的项目ID查询您的表格并更新它,只需通过您的适配器自动更新视图。

我希望这有帮助!