如何构建参数化自定义布局?

时间:2011-04-13 00:06:30

标签: android android-widget android-sdk-1.6 xml-layout

我的应用程序是关于操纵和显示特定实体的不同视图。我有一个名为Item的类,它在我的应用程序中定义了一个实体。我创建了一个自定义布局,知道如何呈现特定版本的Item

public class MyItemLayout extends FrameLayout {
    public MyItemLayout(Context context, AttributeSet attrs) { ... }
}

我希望能够以XML格式引用它:

<MyItemLayout .../>

我还不明白的是:

  1. 如何在XML中引用它?
  2. 如何为元素设置Item实例?我不能用XML做到这一点(或者我可以吗?),那么我将如何在代码中做到这一点?
  3. 感谢。

1 个答案:

答案 0 :(得分:1)

您引用自定义组件(View或ViewGroup)的一种方法是拥有完整的包名称,例如<com.foo.bar.MyItemLayout>

从XML中声明传递数据的一个选项是在构造函数中使用AttributeSet。如果您在XML中设置属性,则可以使用此类中的方法(例如getFloatValue())来获取该属性。

所以: 第1步:执行<com.foo.bar.MyItemLayout item="xxxx"></com.foo.bar.MyItemLayout>之类的操作 第2步:在MyItemLayout构造函数中调用attrs.getFloatValue()(或您希望的任何类型)来获取数据

希望它有所帮助 JQCorreia