android meta data值获取的坑
生活随笔
收集整理的這篇文章主要介紹了
android meta data值获取的坑
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
獲取meta data的時候,正常的非純數(shù)字的字符串,設(shè)置在value里面,用getString獲取是正常的。
但是如果含有純數(shù)字的字符串,用getString獲取返回為null。也許你會想到用getInt,getLong獲取,很抱歉,也可能是null。
解決方式有兩種:
一.
繼續(xù)使用value="1234567890",但是在純數(shù)字字符串開頭加上"\ "(反斜杠+空格)這樣系統(tǒng)會自動讀取為字符串而不是其他格式,形如
<meta-dataandroid:name="appkey"android:value="\ 1234567890" />?
二.使用resources屬性通過getInt獲取資源id,再獲取資源id對應(yīng)的值,這種方式可擴展性很強,可以獲取所有資源而不只是string,形如
<meta-dataandroid:name="appkey"android:resource="@string/AppKey" />在strings.xml中定義AppKey的值為
<string name="AppKey">1234567890</string>?
三.Application下獲取meta資源的方式
public static String getStringMetaData(String name) {int valueId = 0;try {ApplicationInfo appInfo = getApplicationContext().getPackageManager().getApplicationInfo(getApplicationContext().getPackageName(),PackageManager.GET_META_DATA);valueId = appInfo.metaData.getInt(name);if (valueId != 0) {return getApplicationContext().getResources().getString(valueId);}} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return ""; }轉(zhuǎn)載于:https://my.oschina.net/u/990728/blog/673959
總結(jié)
以上是生活随笔為你收集整理的android meta data值获取的坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux常规命令
- 下一篇: 解决PLSQL Developer 9连