Android manifest fayliga foydalanuvchi belgilangan xususiyatlar/qiymatlarni qanday qo'shish mumkin?

Manifest fayliga maxsus atribut/mulkni qo'shmoqchiman va ishga tushirish vaqtida o'qishni xohlayman. Buni amalga oshirishni istayman, shuning uchun ilovaning xatti-harakatini ushbu manifest xususiyatlar orqali sozlashingiz mumkin. Bu qanday amalga oshiriladi?

33

2 javoblar

Siz AndroidManifest.xml faylingizga metadata qo'shishingiz va keyin uni ilovangizda o'qishingiz mumkin.

Ma'lumotlarni quyidagicha yozing:

<meta-data android:value="bar" android:name="foo">

Va quyidagilarni o'qing:

ApplicationInfo ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
Object value = (Object)ai.metaData.get("foo");

See http://developer.android.com/guide/topics/manifest/meta-data-element.html

63
qo'shib qo'ydi
Bu erda qo'ng'iroqlar juda yaxshi ishlaydi. Boshqa foydalanuvchilar buni qabul qilishlari kerakligini eslatib o'tmoqchi bo'lgan narsalardan biri, siz uni PackageManager.NameNotFoundException (sinab ko'rmasdan ham kompilyatsiya qilmasdan Android Studio-da) bilan sinab ko'rishni istasangiz kerak.
qo'shib qo'ydi muallif Wes Winn, manba

Res/values ​​qiymatida bo'sh manba faylini yaratishingiz va satr va elementlarni (bool yoki integer qiymatlari uchun) unga qo'shishingiz mumkin.

<?xml version="1.0" encoding="utf-8"?>

    bar
    33
    true

Shu bilan bir qatorda siz oddiy xususiyatlaringizni yakuniy statik o'zgaruvchilar sifatida belgilaydigan Sobit ob'ektini ishlatishingiz mumkin.

8
qo'shib qo'ydi
Fikr kabi, har qanday ayrıştırıcı holda qiymat olish oson
qo'shib qo'ydi muallif fifth, manba
rahmat, manba faylidan foo qiymatini o'qish uchun zarur bo'lgan kodni ko'rsata olasizmi
qo'shib qo'ydi muallif inor, manba
Ha, bu muqobil, lekin siz qiymat-en, values-jp kabi bir nechta qiymatlar papkangiz bo'lsa, strings.xml fayllaringizga barcha sobit belgilanishi kerak. bir nechta fayllarda bir xil ma'lumotlar, bu ko'p jihatdan kamchilik deb o'ylayman.
qo'shib qo'ydi muallif Burak Öztürk, manba
getResources() funktsiyasiga ega bo'lishi kerak GetString (R.string.foo) getResources (). getInteger (R.integer.testint) getResources.getBoolean (R.bool.testbool) qarang developer.android.com/guide/topics/resources/…
qo'shib qo'ydi muallif nanoquack, manba