android-如何使用复合控件

android-如何使用复合控件,第1张

概述我已经基于LinearLayout创建了一个自定义ViewGroup.ClearableEditText.javapackagetest.todolist;importandroid.content.Context;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;import

我已经基于linearLayout创建了一个自定义viewGroup.

ClearableEditText.java

package test.todoList;import androID.content.Context;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.EditText;import androID.Widget.linearLayout;public class ClearableEditText extends linearLayout{    private EditText editText;    private button button;    public ClearableEditText (Context context){        super (context);        String service = Context.LAYOUT_INFLATER_SERVICE;        LayoutInflater li = (LayoutInflater)getContext ().getSystemService (service);        li.inflate (R.layout.clearable_edit_text, this, true);        editText = (EditText)findVIEwByID (R.ID.clearEditText);        button = (button)findVIEwByID (R.ID.clearbutton);        configbutton ();    }    private voID configbutton (){        button.setonClickListener (new button.OnClickListener (){            public voID onClick (VIEw v){                editText.setText ("");            }        });    }}

clearable_edit_text.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:orIEntation="vertical"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content">    <EditText        androID:ID="@+ID/clearEditText"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"    />    <button        androID:ID="@+ID/clearbutton"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:text="@string/clear"    /></linearLayout>

我现在如何使用ClearableEditText?

我尝试通过2种方式将节点放入布局(main.xml)中:

<test.todoList.ClearableEditText/>

<test.todoList.clearable_edit_text/>

但他们都没有成功.

我的main.xml:

<?xml version="1.0" enCoding="utf-8"?><test.todoList.ClearableEditText/>

我的TodoList.java(主要活动):

package test.todoList;import androID.app.Activity;import androID.os.Bundle;public class TodoList extends Activity{    @OverrIDe    public voID onCreate (Bundle savedInstanceState){        super.onCreate (savedInstanceState);        setContentVIEw (R.layout.main);    }}

谢谢.

解决方法:

解决了. main.xml应该类似于:

<?xml version="1.0" enCoding="utf-8"?><merge xmlns:androID="http://schemas.androID.com/apk/res/androID">    <test.todoList.ClearableEditText        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"/></merge>

首先,合并标签,因为在使用自定义视图时需要它.我的自定义视图具有linearLayout根目录,因此如果我在main.xml中设置另一个linearLayout或FrameLayout根目录来使用我的自定义视图,效率较低.合并解决了这一问题.

其次,所有视图都必须具有layout_wIDth和layout_height属性.

总结

以上是内存溢出为你收集整理的android-如何使用复合控件全部内容,希望文章能够帮你解决android-如何使用复合控件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1083189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存