Android.xml:
<activity android:name='.IconListActivity'
android:label='@string/icon_list_activity_name'
/>
的strings.xml:
<string name='icon_list_activity_name>Icon List</string>
如何访问字符串“图标列表'给出IconListActivity.class?
Android.xml:
<activity android:name='.IconListActivity'
android:label='@string/icon_list_activity_name'
/>
的strings.xml:
<string name='icon_list_activity_name>Icon List</string>
如何访问字符串“图标列表'给出IconListActivity.class?
PackageManager#getActivityInfo()
返回一个ActivityInfo
结构,它有一个labelRes
和一个name
字段,其中一个字段应该有你所需要的。
完美!正是我需要的。谢谢! – Scott 2009-09-23 02:37:43
按照documentation for the activity element,在name
XML属性是一个Activity
子类,即它是不任何与该活动的名称。 labelRes
是此处需要的字段(对应于label
XML属性)。
如果你有ComponentName,那么你就可以做到以下几点:
PackageManager pm = getPackageManager();
ActivityInfo activityInfo = pm.getActivityInfo (componentName, 0);
Log.d ("ActivityLabel", activityInfo.loadLabel (pm).toString());
从任何活动:
String label = null;
try {
label = getResources().getString(
getPackageManager().getActivityInfo(getComponentName(), 0).labelRes);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Log.d(LOG_TAG, "Activity Label: " + label);
我们正在试图获取标签,但labelRes
回报0
和name
是活动的简单类名称。
我们已经设法从标签字符串的方式(我们靶向API 23,顺便说一句),用的是nonLocalizedLabel领域:
ComponentName cn = new ComponentName(this, MainActivity.class);
ActivityInfo info = getPackageManager().getActivityInfo(cn, 0);
Log.d(LOG_TAG, "label == " + info.nonLocalizedLabel);
能否请您给一个用例,其中你希望这样做?也许我们可以找到解决方法。 此外,IconListActivity.class是否在相同的apk中或不是? – bhatt4982 2009-09-22 05:03:23
IconListActivity是我在教授自己的Android编程时所写的活动。 – Scott 2009-09-22 15:46:48
为什么不直接在需要的地方使用'R.string.icon_list_activity_name'? – gMale 2015-02-07 19:35:17