2011-03-17 36 views
1

我已經本地化幾乎所有的應用程序,只剩下幾個異常值。下面是一個例子。我怎樣才能做到這一點,而不創建2個獨立的@string變量?重構 - Android字符串提取問題

builder.setTitle("Version " + getAppVerName() + " Changes"); 

凡getAppVerName()=

public String getAppVerName() { 
    String text; 
    try { 
     text = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; 
    } catch (NameNotFoundException e) { 
     text = "Version Not Found"; 
    } 
    return text; 
} 

回答

3

可以在strings.xml中格式字符串。

<string name="version">Version %1$s Changes</string> 

builder.setTitle(getString(R.string.version, getAppVerName())); 
+0

我喜歡你的比我的替換更好:)你能給我在%1 $ s上30秒的底漆嗎? %1是getAppVerName()的返回值。 $ s是否意味着它是一個字符串? – 2011-03-17 13:45:15

+0

你能詳細說明使用%1 $ s嗎? – 2011-03-17 16:00:50

+1

s表示其字符串d表示其數字。 1表示它的第一個參數。第二個是%2 $ s。 – 2011-03-17 17:07:51

2

你可以立即返回,但我認爲你的代碼是很好的方式。

try { 
     return getPackageManager().getPackageInfo(getPackageName(), 0).versionName; 
    } catch (NameNotFoundException e) { 
     return "Version Not Found"; 
    }