Android中的一些方法-----生生不息
16lz
2022-01-26
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是无效的
更多相关文章
- Android配置ip地址
- Android(安卓)获取ip地址
- android 应用程序使用统计
- Android获取MAC地址
- android实现应用程序无图标(快捷方式)问题.
- android x86 iso 下载地址 google 官方下载
- 个性进度条--------菊花加载----Android(安卓)播放动画
- Ubuntu下android真机调试Using Hardware Devices
- android:inputType的XML与Java代码对应关系