2010-08-31 15 views
11

Android pozwala na tworzenie aliasów ciągów zasobów, takich jak:Czy można łączyć ciągi zasobów android na nowe ciągi?

<resources> 
<string name="foo">somestring</string> 
<string name="bar">@string/foo</string> 
</resources> 

przez który zasób „bar” staje alias dla zasobu o nazwie „foo”.

Co bym dla mojej aplikacji jest możliwość połączenia istniejącego prefiksu zasobów z różnych przyrostków, to rozszerzenie to lubią:

<resources> 
<string name="foo">foo</string> 
<string name="bar">@string/foo+bar</string> 
<string name="else">@string/foo+else</string> 
</resources> 

gdzie zasób „bar” przyniesie ciąg „foobar”. Oczywiste jest, że "+" tutaj nie działa, ale czy jest jakaś inna opcja do osiągnięcia takiej konkatenacji ciągów, aby można było zdefiniować grupę zasobów ciągów, które mają wspólny przedrostek?

Oczywiście zdaję sobie sprawę z tego, że mogłem wykonać takie konkatenacje ciągów zasobów w czasie wykonywania, ale ich statyczne zdefiniowanie w zasobach wydawałoby się o wiele bardziej eleganckie i prostsze.

Michael

Odpowiedz

15

Nie, to niemożliwe. można po prostu użyć <string name="bar">This is my %s</string> a następnie użyć String.format() w swojej aplikacji do wypełnienia zmiennej z na przykład

getResources().getString(R.string.foo); 
+0

Ciąg zaowocowało poprzez łączenie tych 2 będzie 'string.Format (getResources(). GetString (R. string.bar), getResources(). getString (R.string.foo)) ' – Paul