gpt4 book ai didi

android - 如何从包含可点击项目的 ListView 中获取该行的行 ID?

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:44 25 4
gpt4 key购买 nike

在我为我的行向布局 XML 添加按钮之前,在单击列表项时在回调 onListItemClick() 中返回行 ID。现在我在列表行布局中添加了一个按钮,此回调不再起作用。我读到这是正常的。通过在列表行的布局 XML 文件中包含此类内容,我已经能够获取文本和新按钮以引用新回调:

<Button
android:onClick="newCallBackFunctionName"/>

问题是我似乎无法找到一种方法来检索与按下的特定按钮所在的列表项对应的行 ID 号。在 onListItemClick() 的情况下,这是作为回调的一部分传递的,但在上述情况下,只有被单击的 View 对象被传递回回调 newCallBackFunctionName。我该怎么办?

*编辑:我的列表由 SimpleCursorAdaptor 填充,以防万一。

*编辑:我的列表和列表行 XML 布局如下:

列表:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/basic_linear_layout_v1">

<TextView
android:id="@+id/category_selection_page_name"
style="@style/page_heading_v1"/>

<ListView
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>

<TextView
android:id="@id/android:empty"
style="@style/problem_text_v1"
android:text="@string/search_list_empty" />

<Button
android:id="@+id/select_category_button"
android:textSize="20sp"
android:layout_weight="10"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:onClick="reload"/>

行:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView android:id="@+id/category_browse_name" style="@style/basic_list_item_v1"
android:layout_weight="1"
android:layout_gravity="left"
android:focusable="true"
android:clickable="true"/>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="right">
<Button
android:text="..."
android:id="@+id/subcategories_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:focusable="true"
android:onClick="onSubcategoryButtonClick">
</Button>
</LinearLayout>

最佳答案

您可以在适配器的 getView 方法中使用适当的 ID 或位置来标记按钮。例如:

myButton.setTag(id);

然后在您的 onClick 处理程序中,从被单击的 View 中检索标签。例如:

public void newCallBackFunctionName(View v) {
long id = (Long) v.getTag();
// ...
}

关于android - 如何从包含可点击项目的 ListView 中获取该行的行 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5323033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com