IP地址手动设置并进行传值跳转

    这是一个简单的IP设置,手动输入一个IP地址,判断这个IP是否合法,如若合法则跳转到第二个界面,并在第二个界面显示输入的合法IP地址。

其中用到了正则表达式进行IP地址的匹配、匹配成功后进行的传值和跳转。


首先要.XML文件中设置IP地址的输入界面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/bj" >

    <TextView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="设置IP地址"
            android:textSize="20dp"
            android:layout_marginTop="50dp"
            android:textColor="@android:color/white"/>
       
       <LinearLayout 
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal"
           android:gravity="bottom"
           android:layout_marginTop="140dp"
           android:layout_marginLeft="20dp"
           android:layout_marginRight="20dp"
           
           >
           <EditText 
               android:id="@+id/et_ip1"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:ems="10"
               android:inputType="number"
               android:maxLength="3"
               android:gravity="center"/>
           <EditText 
               android:id="@+id/et_ip2"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:ems="10"
               android:inputType="number"
               android:maxLength="3"
               android:gravity="center"/>
           <EditText 
               android:id="@+id/et_ip3"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:ems="10"
               android:inputType="number"
               android:maxLength="3"
               android:gravity="center"/>
           <EditText 
               android:id="@+id/et_ip4"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:ems="10"
               android:inputType="number"
               android:maxLength="3"
               android:gravity="center"/>
       </LinearLayout>
       <Button 
           android:id="@+id/btn_sure"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="确定"
           android:gravity="center"
           android:layout_marginLeft="20dp"
           android:layout_marginRight="20dp"/>

</LinearLayout>

运行后显示界面如下图:



MainActivity.java中进行处理所输入的IP地址

主要是对Button设置监听,首先判断IP地址是否为空,若为空则进行提示;再用正则表达式匹配IP地址是否合法;如果输入的IP合法则传值并跳转到下一个界面。


package com.example.ipsetactivity;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
	private EditText mIP1;
	private EditText mIP2;
	private EditText mIP3;
	private EditText mIP4;
	private Button mbtn_sure;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(getWindow().FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		mIP1=(EditText) findViewById(R.id.et_ip1);
		mIP2=(EditText) findViewById(R.id.et_ip2);
		mIP3=(EditText) findViewById(R.id.et_ip3);
		mIP4=(EditText) findViewById(R.id.et_ip4);
		mbtn_sure=(Button) findViewById(R.id.btn_sure);
		mbtn_sure.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch(v.getId())
		{
		case R.id.btn_sure:
			String mIP_1=mIP1.getText().toString();
			String mIP_2=mIP2.getText().toString();
			String mIP_3=mIP3.getText().toString();
			String mIP_4=mIP4.getText().toString();
			if(mIP_1.equals("")||mIP_2.equals("")||mIP_3.equals("")||mIP_4.equals(""))
			{
			Toast.makeText(this, "IP地址不能为空", Toast.LENGTH_SHORT).show();
				
			}
			else
			{
				String string=mIP_1+"."+mIP_2+"."+ mIP_3+"."+mIP_4;
				String ip="(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|[1-9])\\.(25[0-5]|2[0-4]\\d|1\\d{1,2}|\\d{2}|\\d)\\.(25[0-5]|2[0-4]\\d|1\\d{1,2}|\\d{2}|\\d)\\.(25[0-5]|2[0-4]\\d|1\\d{1,2}|\\d{2}|\\d)";
				Pattern p = Pattern.compile(ip);
				Matcher m = p.matcher(string); 
                if(m.matches())
                {                	
                	Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                    //将要传递的值附加到Intent对象
                    intent.putExtra("IP", string);
                    //启动该Intent对象,实现跳转
                    startActivity(intent);
               	
                }
                else
                {
                	Toast.makeText(this, "IP地址不合法", Toast.LENGTH_SHORT).show();
                }
			}
			break;
			
			
		
		}
		
	}

	
}

跳转后出现显示所输入的IP地址的界面:


在SecondActivity.java中完成跳转后的页面设置

主要负责接收从MainActivity.java中获取的IP地址,并显示出来。

注意:要对SecondActivity.java进行注册,否则程序将自动停止。

package com.example.ipsetactivity;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class SecondActivity extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		requestWindowFeature(getWindow().FEATURE_NO_TITLE);
        setContentView(R.layout.second);
		
		TextView mtv_show=(TextView) findViewById(R.id.tv_show);
		Intent intent =getIntent();
        /*取出Intent中附加的数据*/
        String IP= intent.getStringExtra("IP");		
		mtv_show.setText(IP);
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值