如何知道在相对布局中单击了哪个子视图

Posted

技术标签:

【中文标题】如何知道在相对布局中单击了哪个子视图【英文标题】:How to know which child view is clicked in a relativelayout 【发布时间】:2016-06-08 10:25:29 【问题描述】:

我有一个动态添加和删除子视图的相对布局(可以添加或删除任何数量)

我的问题是如何知道点击了哪个视图,以便我可以根据子视图的类型添加不同的 onclicklisteners

【问题讨论】:

同时添加和删除设置的唯一 ID 或标签,并设置通用的 onclick 侦听器(实现最佳方法的活动)。在 Onclick 检查 id 或标签。 @sush 但是有很多视图为每个设置唯一的 id 是很困难的权利 是的.. 但是没有其他方法可以识别点击了哪个方式的视图。 【参考方案1】:

在点击事件时添加和检索标签会有所帮助。这是代码。

添加标签:

 customView1.setTag(someTag);
 customView1.setOnClickListener(myClickListner);

用于检索:

OnClickListener myClickListener = new onClickListener()
@Override
public void onClick(View v) 

    if(v.getTag() == someTag)
         //do stuff
    else if(v.getTag() == otherTag)
         //do something else
    

【讨论】:

【参考方案2】:

在您的适配器类中,您需要像这样编写共享示例代码 sn-p

public static class ChatListItemsViewHolder extends
            RecyclerView.ViewHolder 


        public ChatListItemsViewHolder(View v) 
            super(v);
            // TODO Auto-generated constructor stub

            v.setOnClickListener(new OnClickListener() 

                @Override
                public void onClick(View v) 

                // write your code here

                
            );

        

如果您需要更清晰的信息,请告诉我。

【讨论】:

以上是关于如何知道在相对布局中单击了哪个子视图的主要内容,如果未能解决你的问题,请参考以下文章

多个时如何以编程方式访问相对布局中的文本视图或进度条?

如何在相对布局中的布局之间居中

视图不显示在相对布局中

在相对布局下方的相对布局中显示按钮

如何避免重复的 TextView 代码?

当有许多子视图时,如何使相对布局可滚动?