2012-03-20 91 views
1

我想將UserName包含在佈局頂部的AppBar標籤/標題區域中。據我的理解,res \ values \ strings.xml是放置一些像AppName這樣的常量值的好地方。所以我有字符串操作建議

<resources> 
<string name="app_name">MyFirstApp</string>... 

在清單中我有@字符串/ app_name的標籤字段。

那麼我該如何去獲取添加到標籤的用戶名呢?

我想過創建名爲str_UserName的第二個字符串res常量。該值將是空白的,直到認證,然後在成功登錄後以編程方式更新str_UserName。我在那裏遇到的麻煩是在清單中連接。它不喜歡我提出的任何組合。 (例如@ string/app_name + @ string/str_UserName或@ string/app_name + str_UserName等)

然後用Google搜索字符串數組。但是,在我嘗試使用字符串數組的時候,它並沒有正確地爲清單工作。我假設,因爲你不能只引用沒有和索引器的數組顯示??

因此,最終我想要的是讓App Name左對齊,並且最好使用常量值,並且用戶名必須是正確的,並且當然是基於用戶的動態。

TIA JB

+1

你不能改變的AndroidManifest.xml內容或另一個XML文件你可以在運行時修改你的應用程序,但是你可以按照這個答案中的描述更改標題欄文本:http://stackoverflow.com/questions/3438276/change-title-bar-text-in-android – Egor 2012-03-20 22:07:24

回答

1

您不能更改res/values/值/串,你也不能串接他們。

但這不是必需的。一旦你有用戶名:

setTitle(getString(R.string.app_name) + " " + username); 

和標題會改變。

+0

我用這兩種方法玩過但最終還是和我一樣嘗試着要做到這一點,就是用Android開發弄腳。我知道你長期以來不想要像存儲在strings.xml中的用戶名那樣的東西。 setTitle(getString(R.string.app_name)+「:::」+ getString(R.string.str_UserName)); – GPGVM 2012-03-21 17:19:32

2

getString方法帶參數,其作用類似於String.format方法。這不是經常使用,但它被記錄和工作正常。所以,你可以做這樣的事情:

<string name="my_custom_title">MyFirstApp for user %s</string> 

而且,一旦你有你的用戶名:

setTitle(getString(R.string.my_custom_title, username)); 

來源:The Context API

+1

你的''''''''背叛了你,並且搬到了錯誤的地方:'setTitle(getString(R.string.my_custom_title,username));' – zapl 2012-03-20 22:26:14

+0

很高興知道。它是否也支持string.format,例如{1,8:yyyy} would == 1990?接下來我會閱讀參考資料,所以如果答案在那裏,請不用擔心。 – GPGVM 2012-03-20 22:28:01

+0

@zapl,真的,謝謝!現在修好。這些該死的)有自己的生活,我發誓! – Guillaume 2012-03-21 07:54:11