【问题标题】:How do I call the onItemClick method from inside another class?如何从另一个类中调用 onItemClick 方法?
【发布时间】: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 是我制作的另一个类。

【问题讨论】:

    标签: java android methods onitemclicklistener android-adapterview


    【解决方案1】:

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

    • 如果这是您的列表的单击侦听器,其中AdapterView&lt;?&gt; parent 是您单击的对象的父视图 - 如果使用ListView,则此对象将是ListView
    • View view 是您单击的实际视图。例如。如果您有TextViews 的列表并单击其中一个,您将在此处获得该文本视图。
    • int position 是单击项目在列表中的位置(0 是第一项)。
    • long id 是被点击项的 id,通常在适配器中控制。

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

    【讨论】:

      猜你喜欢
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多