Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从McClickListener获取单击视图_Android_Android Layout - Fatal编程技术网

Android 从McClickListener获取单击视图

Android 从McClickListener获取单击视图,android,android-layout,Android,Android Layout,我目前正在为一款游戏设计一家商店,但要购买的物品列表有一个问题: 我有一个包含RelativeLayouts作为项目的列表视图-在每个RelativeLayouts中有两个内部RelativeLayouts,其中包含项目 我想知道用户是点击BUY-in item1还是item2,但我在监听器中找不到这样的方法。 问题是,如果我使用onClickListener而不是onItemClickListener,我有项(一个或两个),但没有行-因此我总是有行或列 基本上,我需要从onItemClicke

我目前正在为一款游戏设计一家商店,但要购买的物品列表有一个问题:

我有一个包含RelativeLayouts作为项目的列表视图-在每个RelativeLayouts中有两个内部RelativeLayouts,其中包含项目

我想知道用户是点击BUY-in item1还是item2,但我在监听器中找不到这样的方法。 问题是,如果我使用onClickListener而不是onItemClickListener,我有项(一个或两个),但没有行-因此我总是有行或列

基本上,我需要从onItemClickedListener中获取实际单击项的ID——有什么方法可以做到这一点吗


您应该将onClickListner添加到您的子RelativeLayouts中。从适配器的getView方法执行此操作。

在适配器的getView()中的按钮(Button.setTag(position))中添加一个标记,然后在onClickListener调用view.getTag()中检索索引,将
onClickListener
设置为购买按钮。在“购买”按钮上,您可以附加该职位的标签,并在其
onClick
方法中检索该职位

内部
getView()

onClick
方法中

int position=Integer.parseInt(view.getTag().toString());

我是否可以确保总是在onClickListener之前调用onItemClickListener?(如果我理解正确,那是必要的)您不应该将侦听器添加到ListView。您应该做的唯一一件事是在getView()方法write relativeLayout.setOnClickListener()中的适配器类中,使用接口从主类调用方法。别忘了,您的relativeLayouts应该将focusableInTouchMode设置为True,但我需要获取单击的项目的行-为此,我确实需要onItemClickListener,还是有其他方法?不要在onItemClickListener中设置标记,您必须从listview适配器设置标记。您将需要创建自定义listview适配器,然后在公共视图getView(int位置、视图convertView、视图组父级)中添加button.setTag(位置);这实际上是一个很棒的主意,我要尝试一下,我如何获得点击按钮的行?(在ListView中的位置)您的列表项目是否也可以单击,或者您的购买按钮是否可以单击?如果两个都可以单击,您必须创建一个自定义onClickListener我可以捕获这两个,单击ListItems和按钮clicksCan我确定onItemClickListener总是在onClickListener之前调用?(如果我没弄错的话,那是必要的)是的。listView的OnItemClick将在其子视图获得onClick之前被调用。
int position=Integer.parseInt(view.getTag().toString());