Как вынудить значение метаданных ввести строку?

Я определил метаданные в своем manifest.xml как это:

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

При доступе к метаданным как это:

ActivityInfo ai = act.getPackageManager().getActivityInfo(componentName, PackageManager.GET_META_DATA);
Object value = (Object)ai.metaData.get(key);

это значение интерпретируется как интервал и - что еще более важно - неправильно interepreted (1260588259).

Так как тип определяется автоматически системой сборки (булевские переменные, ints, плавания и строки), я задался вопросом, существует ли какой-либо способ вынудить тип данных представить в виде строки.

Я пытался добавить пространство в конце ("5555555555"), но тогда значение интерпретируется как 5.5555553E9 плавание!).

Я также пытался использовать getString вместо, добираются, но тогда пустой указатель возвращается.

Какие-либо идеи? TIA.

23
задан Dave Webb 28 January 2010 в 14:24
поделиться

2 ответа

Установка сбежавшего пространства перед числом, кажется, работает:

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

сбежавшее пространство не отображается в стоимости, возвращенном GET () .

Я понятия не имею совсем как это работает, если я честен.

Если вы хотите что-то документированное и, следовательно, более надежно вы всегда можете поместить ваше строковое значение в качестве ресурса и обратиться к нему:

<meta-data android:name="foo" android:resource="@string/mynumber"/>
36
ответ дан 29 November 2019 в 01:49
поделиться

Вместо того, чтобы пробел, попробуйте использовать часть пунктуации, которые не должны иметь роли в числовом значении, как толстой кишки, и посмотрите, если это поможет.

0
ответ дан 29 November 2019 в 01:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: