CustomEditText

来源:互联网 发布:性价比高的原画网络班 编辑:程序博客网 时间:2024/05/18 21:39

一个自定义的EditText

代码如下:

import android.annotation.SuppressLint;import android.content.Context;import android.graphics.drawable.Drawable;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.LinearLayout;public class CustomEditText extends LinearLayout {    private EditText et_custom;    private ImageView iv_fork;    private boolean isGone = false;    public CustomEditText(Context context, AttributeSet attrs) {        super(context, attrs);        View view = LayoutInflater.from(context).inflate(                R.layout.custom_edittext, null);        et_custom = (EditText) view.findViewById(R.id.et_custom);        LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT,                LayoutParams.WRAP_CONTENT);        view.setLayoutParams(params);        addView(view);        iv_fork = (ImageView) view.findViewById(R.id.iv_fork);        iv_fork.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                et_custom.setText("");                v.setVisibility(View.GONE);            }        });        et_custom.addTextChangedListener(new TextWatcher() {            @Override            public void onTextChanged(CharSequence s, int start, int before,                    int count) {                String string = s.toString();                if (!string.equals("") && !isGone) {                    iv_fork.setVisibility(View.VISIBLE);                }            }            @Override            public void beforeTextChanged(CharSequence s, int start, int count,                    int after) {                // TODO Auto-generated method stub            }            @Override            public void afterTextChanged(Editable s) {                // TODO Auto-generated method stub            }        });    }    /**     * 设置提示     * @param str     */    public void setHint(CharSequence str) {        et_custom.setHint(str);    }    /**     * 设置背景     * @param drawable     */    @SuppressLint("NewApi")    public void setBackgroundStyle(Drawable drawable) {        et_custom.setBackground(drawable);        // if (style) {        // et_custom.setBackgroundResource(R.drawable.edittext_focus_selector);        // } else {        // et_custom        // .setBackgroundResource(R.drawable.login_edittext_focus_selector);        // }    }    /**     * 设置背景     * @param rid     */    public void setBackground(int rid) {        et_custom.setBackgroundResource(rid);    }    /**     * 设置输入类型     *      * @param type     */    public void setInputType(int type) {        // InputType.TYPE_TEXT_VARIATION_PASSWORD        et_custom.setInputType(type);    }    public Editable getText() {        return et_custom.getText();    }    public String getString() {        return et_custom.getText().toString();    }    /**     * 设置内容     *      * @param text     */    public void setText(CharSequence text) {        et_custom.setText(text);    }    /**     * 设置最小行数     *      * @param minlines     */    public void setMinLine(int minlines) {        et_custom.setSingleLine(false);        et_custom.setMinLines(minlines);    }    /**     * 设置最大行数     *      * @param maxlines     */    public void setMaxLine(int maxlines) {        et_custom.setSingleLine(false);        et_custom.setMaxLines(maxlines);    }    /**     * 设置是否隐藏清空按钮     */    public void setForkGone() {        iv_fork.setVisibility(View.GONE);        isGone = true;    }    /**     * 设置是否可用     *      * @param b     */    public void setEabled(boolean b) {        et_custom.setEnabled(b);        setForkGone();    }}

用法:

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        CustomEditText ce_1=(CustomEditText) findViewById(R.id.ce_1);        CustomEditText ce_2=(CustomEditText) findViewById(R.id.ce_2);        ce_1.setBackground(R.drawable.edittext_focus_selector);        ce_2.setBackground(R.drawable.login_edittext_focus_selector);        ce_2.setInputType(InputType.TYPE_CLASS_TEXT                | InputType.TYPE_TEXT_VARIATION_PASSWORD);    }

效果

1
2

示例代码:http://download.csdn.net/detail/u014580558/8529477

0 0
原创粉丝点击