如何从另一个类中调用 onItemClick 方法?
Posted
技术标签:
【中文标题】如何从另一个类中调用 onItemClick 方法?【英文标题】:How do I call the onItemClick method from inside another class? 【发布时间】:2020-09-29 05:21:22 【问题描述】:[背景信息:我是一名新手,正在学习在 android Studio 中制作“待办事项”应用。 基本上,当用户单击“待办事项”列表中的任何项目时,我会弹出一个对话框,这使用户可以选择两个按钮来“删除或取消”他们单击的任何特定项目。然后我想让那个删除按钮执行这个方法中的代码。]
我正在尝试从我创建的对话框片段类中调用这个 onItemClick 方法(我在 MainActivity 中创建的)。我不知道这些参数值是什么(它们似乎是自动生成的),但是当我想为 Delete 按钮调用 onItemClick 方法时,Android Studio 要求我传递四个参数。这是我试图调用的方法:
'''
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
items.remove(position);
adapter.notifyDataSetChanged();
FileHelper.writeData(items, this);
'''
我在 MainActivity 中定义了这个方法,因为它里面的所有东西都是在那个 Activity 中创建和定义的(adapterview、items)。 FileHelper 是我制作的另一个类。
【问题讨论】:
【参考方案1】:我假设您正在使用该列表。您可以在the documentation 中查看每个参数的更多信息(参见页面底部)。
如果这是您的列表的单击侦听器,其中AdapterView<?> parent
是您单击的对象的父视图 - 如果使用ListView
,则此对象将是ListView
。
View view
是您单击的实际视图。例如。如果您有TextView
s 的列表并单击其中一个,您将在此处获得该文本视图。
int position
是单击项目在列表中的位置(0 是第一项)。
long id
是被点击项的 id,通常在适配器中控制。
因此,例如,如果您想检索被点击的元素,您可以在列表视图中使用getItemAtPosition(position)
来获取实际的项目对象。
【讨论】:
以上是关于如何从另一个类中调用 onItemClick 方法?的主要内容,如果未能解决你的问题,请参考以下文章