Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设计自定义Android控件并在Xml中使用它?_Android_Xml_Android Layout_Android Custom View - Fatal编程技术网

如何设计自定义Android控件并在Xml中使用它?

如何设计自定义Android控件并在Xml中使用它?,android,xml,android-layout,android-custom-view,Android,Xml,Android Layout,Android Custom View,我了解如何创建定制的Android控件,并且我相信我了解如何从Xml布局中提取它的属性。但是,我不知道如何从中获取任何children元素 以下是我试图完成的一个可视化示例: public class Menu extends LinearLayout { // Custom Code } public class MenuItem extends Button { // Custom Code } <!-- Layout --> <?xml version

我了解如何创建定制的Android控件,并且我相信我了解如何从Xml布局中提取它的属性。但是,我不知道如何从中获取任何children元素

以下是我试图完成的一个可视化示例:

public class Menu extends LinearLayout
{
    // Custom Code
}

public class MenuItem extends Button
{
    // Custom Code
}

<!-- Layout -->
<?xml version="1.0" encoding="utf-8"?>
<Menu>
    <MenuItem/>
    <MenuItem/>
</Menu>
公共类菜单扩展了LinearLayout
{
//自定义代码
}
公共类菜单项扩展按钮
{
//自定义代码
}

创建菜单时,如何获取对这两个菜单项的引用?

您应该使用
android:id
。如果您不知道您将有多少个孩子:


LinearLayout
扩展,因此可以使用
getChildAt()
getChildCount()
获取这些视图

要访问任何控件(自定义或系统),必须有一个id。通过指定id,可以为其提供唯一标识。使用此id可以获取对该控件的引用。

“创建菜单时,如何获取对这两个菜单项的引用?”我想,只要给它们一个
android:id
属性就可以了。我觉得我一定是误解了你的问题。我现在将告诉你菜单中有多少子菜单,因为我将把它们添加到Xml中,但我希望它足够动态,我不需要知道。我将尝试getChildCount()。谢谢