Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 唯一标识一个项目';ListView中的s元素_Java_Android_Listview - Fatal编程技术网

Java 唯一标识一个项目';ListView中的s元素

Java 唯一标识一个项目';ListView中的s元素,java,android,listview,Java,Android,Listview,你能帮我找到某个项目的文本视图吗。例如,我有一个包含一些项目的列表视图,每个项目由3个文本视图(名称、价格、说明)组成。现在我想用和updateView(int index)方法更改“price”textView的值。如何在正确的项目中识别正确的文本视图 假设我有5个项目(产品1,…,产品5)。 现在我想更新第三个产品(product3)的价格。 我调用updateView(3) 到目前为止,我的updateView(int index)方法 private void updateView(in

你能帮我找到某个项目的文本视图吗。例如,我有一个包含一些项目的列表视图,每个项目由3个文本视图(名称、价格、说明)组成。现在我想用和updateView(int index)方法更改“price”textView的值。如何在正确的项目中识别正确的文本视图

假设我有5个项目(产品1,…,产品5)。 现在我想更新第三个产品(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

我通常的做法是做以下几点:

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

我希望这有帮助

为什么不更新数据源并在适配器上调用
notifyDataSetChanged()
?问题是,当我尝试使用findViewById(R.id.tvPrice)执行此操作时,它会每次更新第一个项目的tvPrice,而我似乎无法完全控制它…我需要的是一种方法来识别第一个项目中的哪个tvPrice,这是在第二个,以此类推,然后能够调用特定的tvPrice,然后在该文本视图上调用像
setText()
,或者我遗漏了什么。有一种方法比这更简单。让ListView为您完成工作。只需更改数据源、ArrayList或任何用作数据源的内容。感谢您的快速回复,但问题是,我根本没有使用
onClick
方法,我通过GCM发送新的价格(以及它影响的行的id),并使用
BroadcastReceiver
捕获它。是的,我做了我自己的CustomAdapter,它在构造函数中得到了一个
布局资源
(有三个文本视图),但我仍然不明白如何访问项目中的tv-s,如果你能给我举个例子(我在android开发方面没有那么丰富的经验),我将不胜感激非常感谢您抽出时间来帮忙。