2011-08-21 47 views
2

正如您所知,您可以在res/values之内编写任何需要的资源。 我为每个使用的gui/activity创建了一个xml文件。这里有一个例子:在Android资源中保留字符串值

的strings.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="hello">This is home!</string> 
    <string name="app_name">Hattrick4Manager</string> 
    <string name="oauth_button">Authorize me!</string> 
    <string name="download_button">Syncronize</string> 
    <string name="oauth_name">Authorization</string> 
</resources> 

更新ui.xml

<resources> 
     <string name="inizio_download">Update Started...</string> 
     <string name="fine_download">Update Completed...</string> 
     <string name="update_title">Update</string> 
     <string name="update_done">Done</string> 
     <string name="update_inizio_club">Club...</string> 
     <string name="update_inizio_arena">Arena...</string> 
     <string name="update_inizio_fan">Fans...</string> 
     <string name="update_inizio_matches">Matches...</string> 
     <string name="update_inizio_league">League...</string> 
     <string name="update_inizio_leaguefix">League Fixtures...</string> 
     <string name="update_inizio_economy">Economy...</string> 
     <string name="update_inizio_players">Players...</string> 
</resources> 

当我使用这个代码我不得不召回他们喜欢:

R.string.update_done 

R.string.hello 

我的问题是,像这样我基本上都会为每个图形用户界面添加前缀。我宁愿做类似的事情:

R.string.update-ui.done 

这可能吗?

+0

没有回答,只是一个问题的内容。如果在几项活动中存在“完成”文本,应该发生什么?你想把它放在几十个文件中吗?那翻译的文字呢?我不喜欢你的方法。完成已完成。给它命名并在一个中央strings.xml中使用它。只是我2美分。 –

+0

那么,“完成”不能有不同的语义,因为这个词很清楚,但我想表达“完成”的方式可能会有所不同。在我的情况下,我有我的更新-UI“完成” - >“更新完成”,我也可以在竞技场 - 用户“完成” - >“建设席位完成” – dierre

+0

我不明白。文本是'完成',对吧?在这两项活动上?有什么问题?如果您需要创建不同的语义,请使用text =“Done”和name =“buildingseatscompleted”的name =“updatecompleted”,并使用“完成”文本。这是一个古老的讨论使用什么标签。我更喜欢使用贴近文本的标签,而不是靠近活动/包/ ... –

回答

2

您可以根据需要创建任意数量的资源文件,但无法基于文件名执行嵌套名称引用:Android aapt工具不支持生成的R对象上的任意嵌套对象。

你也许可以做到这样的东西在update-ui.xml

<resources> 
     <string name="update_ui_inizio_download">Update Started...</string> 
     <string name="update_ui_fine_download">Update Completed...</string> 
</resources> 

然后用

R.string.update_ui_inizio_download 

中引用文件

+0

这是一个无赖,tnx无论如何。 – dierre