Android 编辑IP地址控件

本文介绍了在Android开发中如何创建一个自定义的IP地址输入控件,该控件包含4个输入框,自动分隔每个部分,并限制输入为0-255之间的数字,超出范围会给出提示。此外,当输入3个字符或输入'.'时,会自动切换到下一个输入框。
摘要由CSDN通过智能技术生成

在安卓开发中,我们会用到输入IP地址的情况,默认的文本编辑控件可能输入不规范。为了使输入规范,方便客户使用,自定义IP地址控件。功能如下:

1.分为4个输入框,用于输入ip地址,中间用点隔开

2.只能输入数字(0-255)超出范围会报提示,清空输入

3.输入三个字符或者输入"."自动跳转到下一个输入框

成品效果:

 

控件后台代码如下:

package com.lx.controler;
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;

public class IPEditText extends LinearLayout {
    private EditText firstIPEdit;
    private EditText secondIPEdit;
    private EditText thirdIPEdit;
    private EditText fourthIPEdit;

    private String firstIP;
    private String secondIP;
    private String thirdIP;
    private String fourthIP;

    public IPEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
        View view = LayoutInflater.from(context).inflate(R.layout.ip_edit_text, this);

        firstIPEdit = (EditText) view.findViewById(R.id.firstIPfield);
        secondIPEdit = (EditText) view.findViewById(R.id.secondIPfield);
        thirdIPEdit = (EditText) view.findViewById(R.id.thirdIPfield);
        fourthIPEdit = (EditText) view.findViewById(R.id.fourthIPfield);

        setIPEditTextListener(context);
    }

    public void setIPEditTextListener(final Context context){
        //设置第一个字段的事件监听
        firstIPEdit.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub
                Log.i("test",s.toString());
                if(null!=s && s.length()>0){
                    if(s.length() > 2 || s.toString().trim().contains(".")){
                        if(s.toString().trim().contains(".")){
                            firstIP = s.toString().trim().substring(0,s.l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值