2012-12-28 54 views
0

我在写我的第一个Android应用程序。它将有数百个菜单链接随着每个发布版本的变化而变化。我正在寻找一种方法来处理基于资源ID的onclicks。根据选定的MenuItem资源ID加载字符串资源 - Android JAVA

菜单用XML定义,像这样:

<item android:id="@+id/Spring_2013" android:title="Spring 2013" android:showAsAction="ifRoom|withText" /> 

的onclicks将加载存储在一个的strings.xml网址:

<string name="Summer_2013">file:///android_asset/catalog/current/genadmissionreq.html</string> 

所以,好像所有我需要的是一个简单的,单一的onclick方法,根据选定的资源ID加载需要的字符串。 MenuItem ID始终等于我的代码中的URL字符串ID。因此,在不使用数百如果()或开关/箱statments,我不能只是说:

String url = getString("R.string." + menuItem.getItemId()); 

显然,这不会分配为多种原因的工作。但你明白了吗?那么,我该如何做到这一点?

对不起新问题。我知道它应该很简单,但我一直在阅读好几天,并且无法找到任何方法来在没有if()语句的情况下为每个菜单项执行此操作。这种方法会使每周更新一场噩梦!

回答

3

尝试使用getIdentifier()

String title = menuItem.getTitle().toString().replace(' ', '_'); 
id = getResources().getIdentifier(title, "string", getPackageName()); 
String string = getString(id); 

第一行取Spring 2013并将其转换为Spring_2013
第二行建立"R.string."与任何标题,在这种情况下,"R.string.Spring_2013"
第三行只是取得String资源。

+0

非常感谢!这使我走上了正确的道路,现在它正在工作!我以前曾尝试过,但是我的XML文件存在问题,导致它无法正常工作。 – toothpick

相关问题