【问题标题】:Next view id as a custom attribute in android下一个视图 id 作为 android 中的自定义属性
【发布时间】:2011-09-19 14:15:51
【问题描述】:

对于我的自定义视图,我还定义了一个自定义属性来保持视图的 ID。它的格式是“参考”。

在布局xml中定义如下,与android:layout_belowattr非常相似

<mycustomview id="@+id/cv_1" xyz:nextviewId="@id/cv_2"... />
<mycustomview id="@+id/cv_2" xyz:nextviewId="@id/cv_3"... />
...
<LinearLayout ...>
    <mycustomview id="@+id/cv_3" xyz:nextviewId="@id/cv_4"... />
</LinearLayout>
...

它给了我错误,我认为是因为它尚未声明。

任何类似这种方法访问下一个对象的建议!!!

我正在考虑为下一个对象使用标记 attr 使用 findByTag 函数查找下一个对象。这是一个好方法吗?

【问题讨论】:

    标签: android custom-attributes custom-view


    【解决方案1】:

    将您的 xml 更改为:

    ...
    <mycustomview id="@+id/cv_1" xyz:nextviewId="@+id/cv_2"... />
    <mycustomview id="@+id/cv_2" xyz:nextviewId="@+id/cv_3"... />
    ...
    

    (注意nextviewId 中的@+id

    这适用于 Android 1.6+(Api Level 4+)。 RelativeLayouts 中使用的方法完全相同。

    【讨论】:

    • 今天学到了一些东西。那么,在相对布局中,您可以使用该方法来引用定义在当前视图下方的视图吗?太棒了!
    • 我试过了,但由于某种原因它在我的布局中不起作用。 API Level 7 和代码结构是 ; 它没有给出任何错误但 nextviewId 返回 0。
    • 感谢您的评论,我使用的是“TypedArray.getInt()”。在您发表评论后,我检查了替代方案,显然我使用了“TypedArray.getResourceId”。
    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2011-10-12
    相关资源
    最近更新 更多