如何从另一个类内部调用onItemClick方法?

2020年11月2日 18点热度 0条评论

[背景信息:我是一个新手,正在学习在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中定义了此方法,因为其中的所有内容均已在该活动中创建和定义(adapterview,项目)。 FileHelper是我制作的另一个类。

解决方案如下:

我假设您正在使用列表。您可以在the documentation中查看有关每个参数的更多信息(请参阅页面底部)。

如果这是列表的单击侦听器,其中AdapterView<?> parent是您单击的对象的父视图-如果使用ListView,则该对象就是该ListView
View view是您单击的实际视图。例如。如果您有TextView的列表,然后单击其中一个,则将在此处获得该文本视图。
int position是单击的项目在列表中的位置(0是第一项)。
long id是单击项的ID,通常可以在适配器中控制它。

因此,例如,如果要检索单击的元素,则可以在列表视图上使用getItemAtPosition(position)来获取实际的item对象。