gpt4 book ai didi

android - 使用自定义 ListView 的听众的个人 ID

转载 作者:行者123 更新时间:2023-11-29 20:56:55 25 4
gpt4 key购买 nike

我是 Android SDK 的新手,最近开始开发一个小应用程序。该应用程序以菜单为中心,该菜单是使用自定义 ListView 实现的。我用了this guide as a reference in order to build my model classes and my adapter .作者还在 GitHub 上发布了他使用的代码,here .我的结果和原来的比较接近,下面的屏幕来自作者的博文:

enter image description here

我成功地设置了我的菜单,现在我需要将列表的每个项目连接到监听器以便我可以处理点击。为了简单起见,我让 Activity 实现了 OnClickListener:

public class MenuActivity extends ListActivity implements View.OnClickListener 
{
@Override
public void onClick(View v) {
// ...
}
}

我还能够通过菜单项的 XML 文件将我的菜单项连接到此方法:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="onClick"
android:id="@+id/menu_item_layout">

现在,每当我单击列表项之一时,我都会进入 onClick 方法。然而,一旦我到了那里,我就无法找到一种方法来区分一个项目。如您所见,我将我的点击事件应用于他们的布局,以便在我点击其中的一个项目(我的文本)时触发它。

但是,由于我所有的项目共享相同的 XML 布局,它们似乎也共享相同的 ID:@id/menu_item_layout。因此,我不能像往常一样...

public void onClick(View v) {
switch(v.getId()){
case R.id.myId: /* ... */ break;
case R.id.myId2: /* ... */ break;
// ...
}
}

鉴于此“自定义列表”实现,有没有一种方法可以区分对菜单项 1 的点击和对菜单项 2 的点击?

最佳答案

OnClickListener 不会像您期望的那样使用 ListView。但是,ListActivity类提供了onListItemClick()方法,实现如下:

@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{

}

position 参数将保存与点击的项目对应的基础数据列表中的索引。

关于android - 使用自定义 ListView 的听众的个人 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385322/

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