• Android自定义组件


    [参考的原文地址]

    http://blog.csdn.net/l1028386804/article/details/47101387


    效果图:

    实现方式:

    一:自定义一个含有EditText和Button的组件

    先创建一个buttonext_layout的自定义组件的XML布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
        <EditText
            android:id="@+id/editText"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:inputType="text"/>
        <Button
            android:id="@+id/clearButton"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="Clear"/>
    
    </LinearLayout>

    二:创建自定义控件类ButExt 

    public class ButExt extends LinearLayout {
        private EditText mEditText;
        private Button mButton;
    
        public ButExt(Context context) {
            super(context);
            //使用布局资源填充视图
            LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //加载布局文件
            mInflater.inflate(R.layout.buttonext_layout, this, true);
            mEditText = (EditText) findViewById(R.id.editText);
            mButton = (Button) findViewById(R.id.clearButton);
            hookupButton(context);
    
        }
    
        /**
         * button处理程序
         */
        private void hookupButton(final Context context) {
            mButton.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    mEditText.setText("");
                    Toast.makeText(context, "文本框数据已清除", Toast.LENGTH_SHORT).show();
                }
            });
        }
       /**
    *给EditText赋值
    */
        public void setText(String txt){
    mEditText.setText(txt);
    }
    }

    三:MainActivity类的实现

    public class MainActivity extends AppCompatActivity {
        private LinearLayout mLinearLayout;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //动态的添加我们自定义的组件
            mLinearLayout = (LinearLayout) findViewById(R.id.main_layout);
            for (int i = 0; i < 3; i++) {
                imageViewExt editText = new imageViewExt(this);
    editText.setText(i+"); mLinearLayout.addView(editText); } } }
    
    
  • 相关阅读:
    Redis中两种持久化机制RDB和AOF
    Redis缓存穿透,缓存击穿,缓存雪崩原因+解决方案
    正则匹配日期
    Linux笔记oom时anon rss和total vm的含义
    go笔记time ticker泄露的排查
    C++笔记编译优化:RVO、NRVO
    C++笔记成员变量的初始值
    Redis Java客户端Jedis入门
    vs2005下安装windows sdk v7.1 出现:uuid.lib(unknwn_i.obj) : fatal error LNK1103 或uuid.lib(oaidl_i.obj) : fatal error LNK1103
    查看Nginx的状态
  • 原文地址:https://www.cnblogs.com/niupi/p/6163760.html
Copyright © 2020-2023  润新知