如何从另一个类中调用 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&lt;?&gt; parent 是您单击的对象的父视图 - 如果使用ListView,则此对象将是ListViewView view 是您单击的实际视图。例如。如果您有TextViews 的列表并单击其中一个,您将在此处获得该文本视图。 int position 是单击项目在列表中的位置(0 是第一项)。 long id 是被点击项的 id,通常在适配器中控制。

因此,例如,如果您想检索被点击的元素,您可以在列表视图中使用getItemAtPosition(position) 来获取实际的项目对象。

【讨论】:

以上是关于如何从另一个类中调用 onItemClick 方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个类调用@selector 方法

从另一个类中的一个类调用方法

静态方法 - 如何从另一个方法调用一个方法?

如何从另一个类调用执行 segue 方法?

如何从另一个类调用非静态抽象方法

如何从另一个类调用viewmodel方法