2011-10-28 34 views

Trả lời

63

Bạn có thể thêm siêu dữ liệu vào tệp AndroidManifest.xml và sau đó đọc tệp đó trong ứng dụng của mình.

Viết dữ liệu như vậy:

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

Và đọc dữ liệu như vậy:

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

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

+1

Các cuộc gọi ở đây hoạt động hoàn hảo. Một điều đáng nói đến nếu người dùng khác gặp phải vấn đề này là bạn sẽ muốn kết thúc việc này với tryMan catch PackageManager.NameNotFoundException (đặc biệt là trong Android Studio, điều này thậm chí sẽ không biên dịch mà không gói nó). –

8

Bạn có thể tạo tệp tài nguyên trống trong res/values ​​và thêm chuỗi và mục (cho giá trị bool hoặc integer) vào nó.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="foo">bar</string"> 
    <item name="testint" type="integer">33</item> 
    <item name="testbool" type="bool">true</item> 
</resources> 

Hoặc bạn có thể chỉ cần sử dụng đối tượng Constants trong đó bạn xác định thuộc tính của mình là biến tĩnh cuối cùng.

+1

cảm ơn, bạn sẽ vui lòng cho mã cần thiết để đọc các giá trị của foo từ tệp tài nguyên – inor

+4

phải là getResources(). getString (R.string.foo) getResources(). getInteger (R.integer.test int) getResources.getBoolean (R.bool.testbool) xem http://developer.android.com/guide/topics/resources/more-resources.html để biết thêm chi tiết – nanoquack

+0

Giống như ý tưởng, dễ lấy giá trị mà không cần bất kỳ trình phân tích cú pháp nào – fifth

Các vấn đề liên quan