windows ip输入是这样的
我的ip输入是这样的,看着一样。
用法:和IPEditText用法一样,settext() gettext()函数即可。
package xxx;
import android.content.Context;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
import xxx.R;
public class IPEditText extends LinearLayout {
private static final String TAG="IPEditText";
private EditText mFirstIP;
private EditText mSecondIP;
private EditText mThirdIP;
private EditText mFourthIP;
private boolean NullAndPoint=false;
public IPEditText(Context context, AttributeSet attrs) {
super(context, attrs);
/**
* 初始化控件
*/
View view = LayoutInflater.from(context).inflate(
R.layout.custom_my_edittext, this);
mFirstIP = (EditText)findViewById(R.id.ip_first);
mSecondIP = (EditText)findViewById(R.id.ip_second);
mThirdIP = (EditText)findViewById(R.id.ip_third);
mFourthIP = (EditText)findViewById(R.id.ip_fourth);
OperatingEditText(context);
}
/**
* 获得EditText中的内容,当每个Edittext的字符达到三位时,自动跳转到下一个EditText,当用户点击.时,
* 下一个EditText获得焦点
*/
private void OperatingEditText(final Context context) {
mFirstIP.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
/*
* 获得EditTe输入内容,做判断,如果大于255,提示不合法,当数字为合法的三位数下一个EditText获得焦点,
* 用户点击.时,下一个EditText获得焦点
*/
if (s != null && s.length() > 0&&mFirstIP.getSelectionStart()!=0) {
Log.i(TAG,s.toString());
if (!s.toString().contains(".")&&Integer.parseInt(s.toString()) > 255) {
Toast.makeText(context, "请输入合法的格式",
Toast.LENGTH_LONG).show();
mFirstIP.setText("255");
mFirstIP.setSelection(0);
} else if (s.length() > 2 ) {
mSecondIP.setFocusable(true);
mSecondIP.requestFocus();
if(mSecondIP.getText().toString().length()>0) {
mSecondIP.selectAll();
}
}else{
mFirstIP.requestFocus();
mFirstIP.setSelection(s.length());
}
if(s.toString().length()==1&&s.toString().equals(".")){
mFirstIP.setText("");
}