这是一个简单的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);
}
}