Substitua (ou "substituir") string no projeto da biblioteca Android
-
27-09-2019 - |
Pergunta
Eu tenho tentado fazer um projeto da Biblioteca Android e, embora o processo de construção funcione bem, tenho tido alguns problemas em substituir um recurso no projeto que usa a biblioteca.
Na minha biblioteca, eu tenho:
UMA
library_layout.xml
contendou003CTextView
Android: id = "@+id/str_my_string"
Android: layout_width = "wrap_content"
Android: layout_text = "wrap_content"
>Um arquivo java que chama
((TextView) this.findViewById (r.id.str_my_string)). SetText (r.string.my_string);
Um recurso
strings.xml
contendou003Cstring name="my_string">Espaço reservadou003C/string>
No projeto usando a biblioteca que tenho
Um recurso
strings.xml
contendou003Cstring name="my_string">Conteúdo real da stringu003C/string>
O comportamento que espero é que, quando eu execute o projeto usando a biblioteca, a exibição de texto exibe Conteúdo real da string, mas na verdade contém falso.
Olhando no aplicativo que usa a biblioteca, eu Faz Veja dois R
arquivos, e os dois têm R.string.my_string
e ambos são iguais ao mesmo valor numérico.
Solução
Eu tenho o mesmo arranjo e isso funciona para mim como o esperado.
A biblioteca possui layout/classe com esta referência a uma string de recursos:
<TextView android:id="@+id/studentSinceLabel">
A biblioteca fornece um valor padrão em suas strings.xml:
<string name="studentSinceLabel">Student Since</string>
O aplicativo principal possui esse valor em suas strings.xml:
<string name="studentSinceLabel">Client Since</string>
Quando eu dar um valor para esse recurso nos principais aplicativos strings.xml, vejo "cliente desde" quando o aplicativo é executado, quando o excluo do principal aplicativo strings.xml, vejo o valor da biblioteca ", estudante desde que ".
Parece que isso é um comportamento esperado com base na minha leitura aqui:http://developer.android.com/tools/sdk/eclipse-adt.html
Citação relevante do link acima:
Nos casos em que um ID de recurso é definido no aplicativo e na biblioteca, as ferramentas garantem que o recurso declarado no aplicativo tenha prioridade e que o recurso no projeto da biblioteca não seja compilado no aplicativo .apk. Isso oferece ao seu aplicativo a flexibilidade de usar ou redefinir quaisquer comportamentos ou valores de recurso que sejam definidos em qualquer biblioteca.