簡體   English   中英

根據選定的MenuItem資源ID加載字符串資源-Android JAVA

[英]Load a string resource based on selected MenuItem resource ID - Android JAVA

我正在編寫我的第一個Android應用程序。 它將具有數百個菜單鏈接,這些鏈接會隨着每個版本的發布而變化。 我正在尋找一種基於資源ID處理onclicks的方法。

菜單以XML定義,如下所示:

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

onclicks將加載存儲在strings.xml中的URL:

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

因此,似乎我所需要的只是一個簡單的單一onclick方法,該方法根據選定的Resource ID加載所需的任何字符串。 MenuItem ID始終等於我代碼中的URL字符串ID。 因此,在不使用數百個if()或switch / case語句的情況下,我不能說:

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

顯然,由於多種原因,該分配不會起作用。 但是,您的想法正確嗎? 那么,我該如何做呢?

對新問題感到抱歉。 我知道它應該很簡單,但是我已經讀了好幾天了,如果沒有每個菜單項的if()語句,找不到任何方法。 這種方法會使每周更新成為噩夢!

嘗試使用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資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM