【问题标题】:Image in a custom List Android自定义列表 Android 中的图像
【发布时间】:2010-11-07 07:24:02
【问题描述】:

我创建了一个自定义适配器来显示一个列表,每行显示一个图像(所有行的图像都相同,除了使用数组我根据位置为其分配不同的值)。一个 xml 文件定义了我正在使用的相对布局。我的问题是我可以让整行都可点击或根本没有,我只希望这张图片是可点击的,而不是整行。我怎么能做到这一点?我是 android 新手,我几乎遵循不同的教程来尝试创建我的列表。任何帮助将不胜感激。

布局是这样的:

文字:

                     [Image]

文字:

那一行看起来像...从两个不同的数组中获取两个文本并显示它,第三个数组用于链接到图像。我只希望这张图片是可点击的,而不是整行。

谢谢

【问题讨论】:

    标签: android image list adapter


    【解决方案1】:

    Android 的列表组件管理每行的点击次数。这使得实现你想做的事情变得非常困难。想到了两个解决方案:

    1) 如果您的列表永远不会很长,您可以简单地使用线性布局和滚动视图来构建列表。如果您动态填写列表并且无法确定不会有大量行,则此方法将不起作用,因为在这种情况下会占用太多内存。

    2) 其他选项是使用 ListView 但在列表中使您的文本组件和图像具有不同的视图类型,即。把你分成三排。 这可以通过覆盖列表适配器的 getItemViewType(int) 来实现 http://developer.android.com/reference/android/widget/Adapter.html#getItemViewType(int) 在这种方法中,您可以使图像行可点击,但文本行不可点击。

    【讨论】:

    • 谢谢,我会试试的。我没有一个庞大的列表,最多只显示 8 个元素。它基本上是一个每日视图,它在一行中显示时间和课程,第二行显示房间号和建筑物号,图像是一个导航按钮,按下该按钮后,您将进入谷歌地图,并在该位置上放置一个图钉。但是它确实在视图之间切换,当您向左或向右(第二天或前一天)滑动时,它会将数据从数据库加载到数组中,清除屏幕并显示当天的新每日视图。我尝试使用 myClickhandler,它适用于按钮.....
    • ...我只是不知道如何将单击图像所在行的位置值传递给它。关于如何做到这一点的任何线索。我的函数看起来像 public void myClickHandler(View v) { // 显示一个 toast 以检查点击 // 但不知道如何传递行的位置或如何找到行的位置。 }
    • 我不完全确定我是否理解您想要做什么,但听起来您可以通过在创建每个按钮时添加一个匿名内部类作为侦听器来解决您的点击侦听器问题.这样,每个听众总是知道它在哪一行并正确处理点击。例如,可以在此处找到此概念的示例:javamex.com/tutorials/swing/anonymous_inner_classes.shtml
    • 谢谢,我会尝试遵循您的建议并尝试实施它,如果我遇到问题尝试发布屏幕截图和对我的代码的引用,以便更容易看到我想要做什么.非常感谢您的时间和帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多