Android中的一些方法-----生生不息

1.判断是否有网络连接

public static boolean isNetworkConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager)context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
            if (mNetworkInfo != null) {
                mNetworkInfo.getType();   // 可以得到网络的类型
                return mNetworkInfo.isAvailable();
            }
        }
        return false;
    }
2.得到WIFI的IP地址(得不到有线网络的IP地址)

public String getWifiIpAddress(){
        String ip = "";
        WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifiManager.getConnectionInfo();
        ip = "wifiInfo :" + Formatter.formatIpAddress(info.getIpAddress());
        ip += "\n";
        
        return ip;
    }
3. 得到机器的IP地址(无线跟有线都可以得到)
public String getIpAddress(){
        try    
        {    
            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)    
            {    
               NetworkInterface intf = en.nextElement();    
               for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)    
               {    
                   InetAddress inetAddress = enumIpAddr.nextElement();    
                   if (!inetAddress.isLoopbackAddress())    
                   {    
                       String ipAddress = inetAddress.getHostAddress().toString();
                       if (!ipAddress.contains("::")){  // 出掉IPV6 , 有":;"的是不是IPV6的地址
                           return ipAddress;
                       }
                           
                   }    
               }    
           }    
        }    
        catch (SocketException ex)    
        {    
            Log.e("WifiPreference IpAddress", ex.toString());    
        }    
        
        return null;    
    }
4. 判断是否安装了某个应用程序
 /**
     * 判断是否安装了某个应用程序
     * 
     * @param 通过packageName (String)查找
     * @return true 为已安装 false 为未安装
     */
    public boolean isAppAvilible(String packageName) {
        final PackageManager packageManager = mContext.getPackageManager();// 获取packagemanager
        if (packageName == null || "".equals(packageManager)) {
            return false;
        }
        try {
            packageManager.getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
            return true;
        } catch (NameNotFoundException e) {
            return false;
        }
    }
5.得到应用的版本号:
**
     * 获取版本号
     * @return 当前应用的版本号
     */
    public String getVersion() {
        try {
            PackageManager manager = mContext.getPackageManager();
            PackageInfo info = manager.getPackageInfo(mContext.getPackageName(), 0);
            return info.versionName;
        } catch (Exception e) {
            e.printStackTrace();
            return mContext.getString(R.string.can_not_find_version_name);
        }
    }
6.调用一个没有界面的Activity

android:theme="@android:style/Theme.NoDisplay"
7.使应用程序变成窗口一样的显示 (当然还有其他方法)

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Translucent" >
 <style name="Translucent" parent="@android:style/Theme.Translucent">
      <item name="android:windowBackground">@drawable/dialog_bg</item>
      <item name="android:windowNoTitle">true</item>
      <item name="android:windowIsFloating">true</item>
      <item name="android:windowIsTranslucent">true</item>
      <item name="android:windowContentOverlay">@null</item>
      <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
      <item name="android:backgroundDimEnabled">true</item>
  </style>
    
8.一个List中移除另一个List中包含的项的完美解决方法
static List<String> packageNames = new ArrayList<>();
<span style="white-space:pre">	</span>static List<String> removePackageNames = new ArrayList<>();
<span style="white-space:pre">	</span>static String[] items = {
<span style="white-space:pre">			</span>"item0",
<span style="white-space:pre">			</span>"item1",
<span style="white-space:pre">			</span>"item2",
<span style="white-space:pre">			</span>"item3",
<span style="white-space:pre">			</span>"item4",
<span style="white-space:pre">			</span>"item5",
<span style="white-space:pre">			</span>"item6",
<span style="white-space:pre">			</span>"item7",
<span style="white-space:pre">			</span>"item8",
<span style="white-space:pre">			</span>"item9",
<span style="white-space:pre">			</span>"item10",
<span style="white-space:pre">	</span>};

其中

for (int i = 0 ; i < 10 ; i++){
packageNames.add(items[i]);
}

for (int i = 0 ; i < 5 ; i++){
removePackageNames.add(items[i]);
}

现在要把removePackageNames 中包含的item 从packageNames中移除。当然我们可以使用for循环实现,但是方法比较复杂(相对现在的这种方法)

实现方法如下:

<pre name="code" class="java">Iterator<String> <span style="font-family: Arial, Helvetica, sans-serif;">iterator = packageNames.iterator();</span>
while(iterator.hasNext()){String item = iterator.next();if (removePackageNames.contains(item)){iterator.remove();}}

 


9.setVisibility 没有作用

View 的 setVisibility 没有作用是这个view 有动画,

如果有 Animation 那么应该调用view.clearAnimation() 

另外View  有Animation的话,如果Animation 有setFillAfter(true)的话,那么这个View是始终有Animation存在的 ,setVisbility是无效的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值