Em suma: eu não acho que você pode, mas parece haver uma solução alternativa: .
Se você der uma olhada no recurso Android aqui:
http://developer.android.com/guide/topics/resources/string-resource.html
Você vê que, na seção matriz (matriz de cadeias, pelo menos), a "REFERÊNCIA DE RECURSOS" (como você obtém de um XML) não especifica uma maneira de abordar os itens individuais. Você pode até tentar no seu XML usar "@ array / yourarrayhere". Eu sei que em tempo de design, você receberá o primeiro item. Mas isso não tem utilidade prática se você quiser usar, digamos ... o segundo, é claro.
No entanto, há um truque que você pode fazer. Veja aqui:
Referenciando uma string XML em uma matriz XML (Android)
Você pode "enganar" (não realmente) a definição da matriz, abordando cadeias independentes DENTRO da definição da matriz. Por exemplo, no seu strings.xml:
<string name="earth">Earth</string>
<string name="moon">Moon</string>
<string-array name="system">
<item>@string/earth</item>
<item>@string/moon</item>
</string-array>
Ao usar isso, você pode usar "@ string / earth" e "@ string / moon" normalmente nos campos XML "android: text" e "android: title" e, no entanto, não perderá a capacidade de usar a matriz definição para quaisquer fins que você pretendeu em primeiro lugar.
Parece funcionar aqui no meu Eclipse. Por que você não tenta nos dizer se funciona? :-)
name
tags para <item> s ... * sigh *strings.xml
mas não entrouvalues-fr
e a matriz ainda é atualizada com a versão em francês. Tão errado .. mas legal funciona!Talvez isso ajude:
Então você obtém a lista de matrizes como uma String [] e, em seguida, escolhe qualquer i, some_array [i].
fonte
String myPref = preferences.getString(context.getResources().getString(R.string.my_pref), some_array [0]);
onde my_pref foi previamente definida para algum valor some_array [x]A melhor opção seria usar apenas o recurso retornado como uma matriz, o que significa:
getResources().getStringArray(R.array.your_array)[position]
Essa é uma abordagem de atalho das abordagens mencionadas acima, mas funciona da maneira que você deseja. Caso contrário, o Android não fornece indexação XML direta para matrizes baseadas em xml.
fonte
Infelizmente:
Parece que você não pode fazer referência a um único item de uma matriz em values / arrays.xml com XML. Claro que você pode em Java, mas não XML. Não há informações sobre como fazê-lo na referência de desenvolvedor do Android e não consegui encontrar nenhum outro lugar.
Parece que você não pode usar uma matriz como uma chave no layout de preferências. Cada chave deve ter um valor único com seu próprio nome de chave.
O que quero realizar: desejo poder percorrer as 17 preferências, verificar se o item está marcado e, se estiver, carregar a string da matriz de strings para esse nome de preferência.
Aqui está o código que eu esperava que concluísse esta tarefa:
O que eu fiz:
Eu defini uma única string para cada um dos itens e referenciei as strings únicas no. Eu uso a referência de cadeia única para os títulos das caixas de seleção de layout de preferências e a matriz para meu loop.
Para percorrer as preferências, acabei de nomear as teclas como chave1, chave2, chave3, etc. Como você faz referência a uma chave com uma string, você tem a opção de "construir" o nome da chave em tempo de execução.
Aqui está o novo código:
fonte
Outra maneira de fazer isso é definir uma matriz de recursos em strings.xml, como abaixo.
e, em seguida, definindo uma matriz de cadeias usando os recursos acima
Você também pode consultar a mesma string em outros xmls, mantendo o DRY intacto. A vantagem que vejo é que, com uma única alteração de valor, afetaria todas as referências no código.
fonte