• 11
name

A PHP Error was encountered

Severity: Notice

Message: Undefined index: userid

Filename: views/question.php

Line Number: 191

Backtrace:

File: /home/prodcxja/public_html/questions/application/views/question.php
Line: 191
Function: _error_handler

File: /home/prodcxja/public_html/questions/application/controllers/Questions.php
Line: 433
Function: view

File: /home/prodcxja/public_html/questions/index.php
Line: 315
Function: require_once

I want to add a custom attribute / property into the manifest file, and be able to read it at run time. I want to do this so I can customize the app's behavior via these manifest properties. How can this be done?

You can add meta-data to your AndroidManifest.xml file and then read that in your application.

Write the data like so:

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

And read the data like so:

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

  • 71
Reply Report
    • The calls here work perfectly. One thing worth mentioning if other users come across this is that you'll want to wrap this with try/catch PackageManager.NameNotFoundException (especially in Android Studio, this won't even compile without wrapping it).

You can create an empty resource file in res/values and add strings and items (for bool or integer values) to it.

<?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>

Alternatively you could simply use a Constants object in which you define your properties as final static variables.

  • 8
Reply Report