zoukankan      html  css  js  c++  java
  • 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); } } }
    
    
  • 相关阅读:
    powerdesigner设置主键为自增字段,设置非主键为唯一键并作为表的外键
    关于window.event.srcElement 和 window.event.target(触发事件的对象)
    JS遍历Table的所有单元格内容
    创Wcf案例数据服务
    jstack和线程dump分析
    Chromium Graphics: GPUclient的原理和实现分析之间的同步机制-Part II
    oracle11g导出空表
    java序列化是什么和反序列化和hadoop序列化
    【leetcode列】3Sum
    【POJ1741】Tree 树分而治之 模板略?
  • 原文地址:https://www.cnblogs.com/niupi/p/6163760.html
Copyright © 2011-2022 走看看