android编程之ip2id程序实例

本文实例讲述了android编程之ip2id程序。分享给大家供大家参考。具体分析如下:

一、说明:

公司一个项目中需要给一系列网络设备分配id号,id是根据ip算出来的,算法如下:

id共3个字节,高字节:从机号:1-31;后两个字节为ip号的最后两个字节.如ip为192.168.0.240的一台设备从机号为31.则id号为31,00,240换算成十进制为2031856.

二、源码:

package com.id2ip;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;
public class id2ip extends Activity {
 /** Called when the activity is first created. */
 private TextView text;
 private Button button;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 //获得文本框ID
 text = (TextView)findViewById(R.id.editText1);
 //获得按钮ID
 button = (Button)findViewById(R.id.button1);
 //重载按键监听方法
 button.setOnClickListener(new Button.OnClickListener()
 {
  @Override
  public void onClick(View v)
  {
  //获得输入框文本
  CharSequence str = text.getText();
  do
  {
   //判断输入是否有效
   //如果输入位数不为8位,则无效
   if (str.length() != 8)
   {
   text.setText("输入位数必须为8位");
   break;
   }
   //输入的字符不为数字,则无效
   int i = 0;
   for (i = 0;i < 8;i++)
   {
   if ((str.charAt(i) < '0') || (str.charAt(i) > '9'))
   {
    break;
   }
   }
   if (i < 8)
   {
   text.setText("输入字符必须为数字");
   break;
   }
   String str_temp = str.toString();
   //转换为数字
   long num = Long.parseLong(str_temp);
   //ip2id
   short slave_num = (short)(num / 1000000);
   num = num % 1000000;
   short ip1 = (short)(num / 1000);
   num = num % 1000;
   short ip0 = (short)num;
   long num_temp = ip0;
   num_temp |= ip1 << 8;
   num_temp |= slave_num << 16;
   str_temp = Long.toString(num_temp);
   str = str_temp;
   text.setText(str);
  }while (false);
  }
 });
 }
}

三、注意:

程序中需要注意的地方有3处:

① 字符串转数字,可以用方法Long.parseLong();

② 在android中常用的捕捉空间字符串的类是CharSequence,而java中常用的字符串类为String,则需要转换.

1.CharSequence转String

CharSequence str;
String str_temp = str.toString();

2.String转CharSequence这个直接等于就可以了:

str = str_temp;

③ java中没有无符号即unsigned类型,所有类型都是带符号的

希望本文所述对大家的Android程序设计有所帮助。

(0)

相关推荐

  • Android编程之页面切换测试实例

    本文实例讲述了Android编程之页面切换测试.分享给大家供大家参考.具体分析如下: 一.软件平台: win7 + eclipse + sdk 二.设计思路: 两个页面:mian和ok,每个页面上有一个按键,点击则可以互相切换 三.源代码: main.xml源代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr

  • Android中使用tcpdump、wireshark进行抓包并分析技术介绍

    本文主要介绍如何使用tcpdump和wireshark对Android应用程序进行抓包并分析,需要说明的是在抓包之前,你的Android设备必须root过了,另外你的电脑必须有Android SDK环境. 下载并安装tcpdump tcpdump链接:http://www.tcpdump.org/ 选择一个版本下载并解压提取出其中呃tcpdump文件,然后push到你的手机上去: 复制代码 代码如下: adb push c:\tcpdump /data/local/tcpdump 进一步操作:

  • Android定时器和Handler用法实例分析

    本文实例讲述了Android定时器和Handler用法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Android Studio 二.定时器使用示例: 初始化: //定时器 private Timer Timer_Work = new Timer(); //工作间隔,单位:ms private final int INTERVAL_WORK = 5000; 创建定时器线程: /** * 构造函数 */ public Config() { //生成配置信息 gene

  • Android权限机制带来的一些安全问题介绍

    Android引入了权限机制最初的出发点是为了通过权限策略来严格控制和处理安全问题,可参见:下面两篇文章,但关于这个Android权限的机制仍然存在一些很小但不容忽略的问题,另外正所谓道高一尺魔高一丈,仍然存在一些可以绕过权限的方法.本文旨在分析权限机制的一些缺点和不足,并不能以此文章作为非法应用的参考书. Android Permission权限机制引子 Android Permission权限机制的具体使用 权限机制的缺陷和不足 (1) 应用程序可以自由地命名一个新的权限,无须遵循一定的命名

  • Android编程之蓝牙测试实例

    本文实例讲述了Android编程之蓝牙测试.分享给大家供大家参考.具体分析如下: 一.软件平台: win7 + eclipse + sdk 二.设计思路: 配合倒计时定时器实现蓝牙打开,可见,扫描三个功能 三.源代码: main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/re

  • Android观察者模式实例分析

    本文实例讲述了Android观察者模式.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Eclipse 二.说明: 1.打开sd卡中的xml文件,如果不存在,这新建一个,并写入默认配置 2.读取xml文件 3.Config_Info.java为配置信息数据结构 4.IF_Config.java为配置类的存取接口,其他类可以通过此接口直接获取配置信息 5.IF_Subject_Config.java为观察者模式目标类接口 6.IF_Observer_Config.jav

  • android编程之xml文件读取和写入方法

    本文实例讲述了android编程之xml文件读取和写入方法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Eclipse 二.说明: 1.打开sd卡中的xml文件,如果不存在,这新建一个,并写入默认配置 2.读取xml文件 三.xml文件格式: <?xml version="1.0" encoding="UTF-8" standalone="true"?> -<config> <titl

  • android编程之ip2id程序实例

    本文实例讲述了android编程之ip2id程序.分享给大家供大家参考.具体分析如下: 一.说明: 公司一个项目中需要给一系列网络设备分配id号,id是根据ip算出来的,算法如下: id共3个字节,高字节:从机号:1-31;后两个字节为ip号的最后两个字节.如ip为192.168.0.240的一台设备从机号为31.则id号为31,00,240换算成十进制为2031856. 二.源码: package com.id2ip; import android.app.Activity; import a

  • Android编程之json解析实例详解

    本文实例分析了Android编程之json解析的方法.分享给大家供大家参考,具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.

  • Android编程之ListPreference用法实例分析

    本文实例讲述了Android编程之ListPreference用法.分享给大家供大家参考,具体如下: 先展示一下效果图,如下所示: 项目代码如下: package com.my.listpreference; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.On

  • Android编程之MD5加密算法实例分析

    本文实例分析了Android编程之MD5加密算法.分享给大家供大家参考,具体如下: Android MD5加密算与J2SE平台一模一样,因为Android 平台支持 java.security.MessageDigest这个包.实际上与J2SE平台一模一样. 算法签名: 复制代码 代码如下: String getMD5(String val) throws NoSuchAlgorithmException 输入一个String(需要加密的文本),得到一个加密输出String(加密后的文本) pa

  • Android编程之Application设置全局变量及传值用法实例分析

    本文实例讲述了Android编程之Application设置全局变量及传值用法.分享给大家供大家参考,具体如下: /** * 重写Application,主要重写里面的onCreate方法,就是创建的时候, * 我们让它初始化一些值,前段时间在javaeye里面看到过一个例子,与此相似, * 我做了些改进.听说外国开发者习惯用此初始化一些全局变量,好像在Activity * 一些类里面初始化全局变量的化,会遇到一些空指针的异常,当然,我没有遇到过. * 如果用此方法初始化的话,那么就可以避免那些

  • Android编程之在SD卡上进行文件读写操作实例详解

    本文实例讲述了Android编程之在SD卡上进行文件读写操作的方法.分享给大家供大家参考,具体如下: 很多知识只有真正理解掌握之后才能运用自如,举一反三.对Java中的文件操作和android系统SD卡里面的文件操作,你觉得有区别吗,显然没有本质区别,如果勉强说有,那也是不足为道滴,但我们在实际运用中却要注意如下几点,不然问题会缠上你. 1.首先想要对android系统SD卡里文件操作需要添加使用权限: android系统是不会让外来程序随意动自己内存的,如果没有许可证,不好意思,不准你动我地盘

  • Android编程之SharedPreferences文件存储操作实例分析

    本文实例讲述了Android编程之SharedPreferences文件存储操作的方法.分享给大家供大家参考.具体分析如下: SharedPreferences类提供了一种简单的文件存储功能,像程序的配置文件可以通过它来实现. 源代码: package com.test.sharedpreferences; import android.app.Activity; import android.content.Context; import android.content.SharedPrefe

  • Android编程之TabWidget选项卡用法实例分析

    本文实例讲述了Android编程之TabWidget选项卡用法.分享给大家供大家参考,具体如下: 1 概览 TabWidget与TabHost.tab组件一般包括TabHost和TabWidget.FrameLayout,且TabWidget.FrameLayout属于TabHost. 是否继承TabActivity的问题 实现步骤.两种实现方式,一种是将每个Tab的布局嵌在TabHost中的FrameLayout中,每个Tab的内容布局与显示都在FrameLayout中进行,缺点是布局会显得很

  • Android编程之Button控件用法实例分析

    本文实例讲述了Android编程之Button控件用法.分享给大家供大家参考,具体如下: 一.Button概述 android.widget.Button直接继承于android.wdiget.TextView. 直接子类有:CompoundButton. 间接子类有:CheckBox,RadioButton,Switch,ToggleButton. Button类表示一个"按钮"控件."按钮"控件可以被用户按下或者点击,来触发另一个操作. 二.Button的用法

  • Android编程之ActionBar Tabs用法实例分析

    本文实例讲述了Android编程之ActionBar Tabs用法.分享给大家供大家参考,具体如下: 这里主要实现用Tab切换不同的Fragment,点击View显示or隐藏ActionBar,把ActionBar 设为透明,使界面更加友好,详细代码见资源里的ActionBarTabs. ActionBar Tab主要用于Fragment之间的切换,其必须要设置ActionBar.TabListener,详细代码如下 ActionBarActivity.Java: import android.

随机推荐