自定义视图由多个视图组成

我有一组想要一直使用的视图。 这方面的一个例子可能是这样的:

    

文本视图是一个提示,编辑视图就是答案。 我想给这个组合命名,并能够使用该名称将其popup到xml中。 我喜欢它是一个自定义视图,所以我可以很好地把它放在一个类中,并为它创建各种实用程序function。 有什么方法可以做到吗? 我知道我可以inheritanceLinearLayout并在java代码中动态创建子项,但这使我无法通过xml轻松进行更改。 有更好的路线吗?

是的,我还有一些我想要做的事情,而不仅仅是提示。

此示例适用于水平数字选择器窗口小部件,但它是相同的概念。

首先为自定义组件创建XML布局

       

然后创建java类

 public class HorizontalNumberPicker extends LinearLayout { public HorizontalNumberPicker(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater inflater = LayoutInflater.from(context); inflater.inflate(R.layout.horizontal_number_picker, this); } } 

将所需的逻辑添加到该java类中,然后您可以在XML布局中包含自定义组件,如下所示:

  

有关更多信息,请查看此链接: http : //developer.android.com/guide/topics/ui/custom-components.html#compound

为此目的使用复合控件 。 有很多关于它的样本和教程。 祝你好运 )

将该XML放入布局XML文件中,并在需要时使用inflater对视图进行充气。

 LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.some_id, parent, false); 

获得视图后,您可以编写一个接受此视图并对其执行操作的实用程序类。 使用findViewById()检索文本和编辑视图,或使用ViewHolder模式存储对其他视图的引用