温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

自定义view之HPEditText

发布时间:2020-07-08 22:45:52 来源:网络 阅读:422 作者:乐无莜 栏目:移动开发
package com.example.view;

import com.iflytek.voiceads.AdError;
import com.iflytek.voiceads.AdKeys;
import com.iflytek.voiceads.IFLYAdListener;
import com.iflytek.voiceads.IFLYAdSize;
import com.iflytek.voiceads.IFLYFullScreenAd;

import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.widget.EditText;
import android.widget.Toast;

public class HPEditText extends EditText {

	private boolean isRun = false;
	private String d = "";
	private  Context  mContext;
	public HPEditText(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		this.mContext=context;
		setBankCardTypeOn();
	}

	public HPEditText(Context context, AttributeSet attrs) {
		super(context, attrs);
		setBankCardTypeOn();
	}

	public HPEditText(Context context) {
		super(context);
		setBankCardTypeOn();
	}

	public void setBankCardTypeOn() {
		HPEditText.this.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				if (isRun) {
					isRun = false;
					return;
				}
				isRun = true;
				d = "";
				String newStr = s.toString();
				newStr = newStr.replace(" ", "");

				int index = 0;
				while ((index + 4) < newStr.length()) {
					d += (newStr.substring(index, index + 4) + " ");
					index += 4;
				}
				d += (newStr.substring(index, newStr.length()));
				int i = getSelectionStart();

				HPEditText.this.setText(d);
				try {

					if (i % 5 == 0 && before == 0) {
						if (i + 1 <= d.length()) {
							HPEditText.this.setSelection(i + 1);
						} else {
							HPEditText.this.setSelection(d.length());
						}
					} else if (before == 1 && i < d.length()) {
						HPEditText.this.setSelection(i);
					} else if (before == 0 && i < d.length()) {
						HPEditText.this.setSelection(i);
					} else
						HPEditText.this.setSelection(d.length());
				} catch (Exception e) {

				}

			}

			private void insertText(EditText editText, String mText) {
				editText.getText().insert(getSelectionStart(), mText);

			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {

			}

			@Override
			public void afterTextChanged(Editable s) {
				 // Toast.makeText(mContext, "最中输入"+s, Toast.LENGTH_LONG).show();
			}
		});
	}

}  	


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI