
csdn怎么了,上传的代码都是乱的。。。。。。。。。今天我要自定义一个EditText,主要实现的效果是,没输入字符的时候,后面没有清空按钮,输入的时候,就会出现。不废话,直接上图。一:效果介绍: 这个效果是不是很酷呢?把它封装成一个类,就不用每次都写了。直接当控件用…

csdn怎么了,上传的代码都是乱的。。。。。。。。。
今天我要自定义一个EditText,主要实现的效果是,没输入字符的时候,后面没有清空按钮,输入的时候,就会出现。不废话,直接上图。
一:效果介绍:
这个效果是不是很酷呢?把它封装成一个类,就不用每次都写了。直接当控件用了。
二:代码
(1)user_definedet.xml
(2)UserDefineEditText.java
package com.example.userdefinedet; import android.content.Context; import android.text.Editable; import android.text.TextWatcher; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; public class UserDefineEditText extends LinearLayout implements TextWatcher, OnClickListener { private EditText mEdiText; private ImageView mImageView; public UserDefineEditText(Context context) { super(context); initView(); } public UserDefineEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initView(); } public UserDefineEditText(Context context, AttributeSet attrs) { super(context, attrs); initView(); } // 初始化视图 private void initView() { View view = View.inflate(getContext(), R.layout.user_definedet, null); mEdiText = (EditText) view.findViewById(R.id.user_define_et); mImageView = (ImageView) view.findViewById(R.id.user_define_iv); mImageView.setVisibility(View.GONE); mEdiText.addTextChangedListener(this); mImageView.setOnClickListener(this); addView(view); } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated metho if (s.length() > 0) { mImageView.setVisibility(View.VISIBLE); } else { mImageView.setVisibility(View.GONE); } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void onClick(View v) { switch (v.getId()) { case R.id.user_define_iv: mEdiText.setText(); break; default: break; } } public String getText() { return mEdiText.getText().toString(); } }
(3)使用这个控件的两种方法:
(1)new UserDefineEditText(this);
this:指的是“上下文”
(2)在布局文件中引入:
如:
扫一扫在手机打开
评论
已有0条评论
0/150
提交
热门评论
相关推荐