android – 如何处理重复自定义组件的点击触摸?

android – 如何处理重复自定义组件的点击触摸?,第1张

概述所以,我有一个屏幕,通过 XML包含0到6个相同的用户界面组件.与此类似的东西: <TableRow android:layout_height="150px"> <include android:id="@+id/p1" android:layout_width="fill_parent" android:layout_height="wrap_content" lay 所以,我有一个屏幕,通过 XML包含0到6个相同的用户界面组件.与此类似的东西:

<tableRow androID:layout_height="150px">    <include androID:ID="@+ID/p1" androID:layout_wIDth="fill_parent"        androID:layout_height="wrap_content" layout="@layout/numerics_component"        androID:onClick="onClick" /></tableRow><tableRow androID:layout_height="150px">    <include androID:ID="@+ID/p2" androID:layout_wIDth="fill_parent"        androID:layout_height="wrap_content" layout="@layout/numerics_component"        androID:layout_below="@ID/p1" androID:onClick="onClick" /></tableRow>

……等

其中每个UI都是我重用的几个小部件和@R_419_6942@组件的集合.

我想在我的Activity中检测那些包含位中的组件的点击并进行适当的响应.问题是,在我的onClick方法中,如果我遵循常见模式,我永远无法分辨哪些视图得到了点击:

public voID onClick(VIEw vIEw) {    Log.d(loggingname,"Got onClick event on vIEw: " + vIEw);    // IDentify the vIEw,and handle appropriately:    switch (vIEw.getID()) {    ...

使用上面的代码,我永远无法分辨出组件的6个副本中的哪个被点击了.必须有一个很好的方法来做到这一点,但我没有看到它.

此外,我不想将可重用组件硬编码到一个活动,因为我想在我的应用程序中的多个活动中重复使用它.理想情况下,我可以在我的Activity中设置监听器.

有关如何做到这一点的任何想法?

谢谢!

解决方法 您可以搜索层次结构以确定单击了哪个子组件.我看到你表中的每一行都有一个唯一的ID.因此,即使使用相同的ID重复布局,视图层次结构也不会在任何子树中具有相同的ID.

因此,要识别单击了哪个子组件,请获取父视图的ID(在您的情况下是一行),并查看该视图所属的6行中的哪一行.那有意义吗?

总结

以上是内存溢出为你收集整理的android – 如何处理重复自定义组件的点击/触摸?全部内容,希望文章能够帮你解决android – 如何处理重复自定义组件的点击/触摸?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存