ResourceBundle Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Os pacotes de recursos contêm objetos específicos da localidade.
[Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)]
public abstract class ResourceBundle : Java.Lang.Object
[<Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)>]
type ResourceBundle = class
inherit Object
- Herança
- Derivado
- Atributos
Comentários
Os pacotes de recursos contêm objetos específicos da localidade. Quando seu programa precisa de um recurso específico de localidade, String por exemplo, seu programa pode carregá-lo do pacote de recursos apropriado para a localidade do usuário atual. Dessa forma, você pode escrever um código de programa em grande parte independente da localidade do usuário isolando a maioria, se não todas, das informações específicas da localidade em pacotes de recursos.
Isso permite que você escreva programas que podem: UL>LI ser facilmente localizado, ou traduzido, em diferentes idiomas <> li manipular várias localidades ao mesmo tempo <LI> ser facilmente modificado mais tarde para dar suporte a ainda mais localidades </UL><<>
Os pacotes de recursos pertencem a famílias cujos membros compartilham um nome base comum, mas cujos nomes também têm componentes adicionais que identificam suas localidades. Por exemplo, o nome base de uma família de pacotes de recursos pode ser "MyResources". A família deve ter um pacote de recursos padrão que simplesmente tem o mesmo nome de sua família - "MyResources" - e será usado como o pacote de último recurso se não houver suporte para uma localidade específica. A família pode fornecer quantos membros específicos da localidade forem necessários, por exemplo, um alemão chamado "MyResources_de".
Cada pacote de recursos em uma família contém os mesmos itens, mas os itens foram traduzidos para a localidade representada por esse pacote de recursos. Por exemplo, "MyResources" e "MyResources_de" podem ter um String que é usado em um botão para cancelar operações. Em "MyResources", pode String conter "Cancelar" e, em "MyResources_de", pode conter "Abbrechen".
Se houver recursos diferentes para diferentes países, você poderá fazer especializações: por exemplo, "MyResources_de_CH" contém objetos para o idioma alemão (de) na Suíça (CH). Se você quiser modificar apenas alguns dos recursos na especialização, poderá fazê-lo.
Quando seu programa precisa de um objeto específico à localidade, ele carrega a ResourceBundle classe usando o #getBundle(java.lang.String, java.util.Locale) getBundle método: <blockquote>
ResourceBundle myResources =
ResourceBundle.getBundle("MyResources", currentLocale);
</blockquote>
Os pacotes de recursos contêm pares chave/valor. As chaves identificam exclusivamente um objeto específico da localidade no pacote. Aqui está um exemplo de um ListResourceBundle que contém dois pares chave/valor: <blockquote>
public class MyResources extends ListResourceBundle {
protected Object[][] getContents() {
return new Object[][] {
// LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
{"OkKey", "OK"},
{"CancelKey", "Cancel"},
// END OF MATERIAL TO LOCALIZE
};
}
}
</blockquote> Keys são sempre Strings. Neste exemplo, as chaves são "OkKey" e "CancelKey". No exemplo acima, os valores também Stringsão s--"OK" e "Cancel"-- mas eles não precisam ser. Os valores podem ser qualquer tipo de objeto.
Você recupera um objeto do pacote de recursos usando o método getter apropriado. Como "OkKey" e "CancelKey" são ambas cadeias de caracteres, você usaria getString para recuperá-las: <blockquote>
button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));
</blockquote> Todos os métodos getter exigem a chave como um argumento e retornam o objeto, se encontrado. Se o objeto não for encontrado, o método getter lançará um MissingResourceException.
Além disso getString, ResourceBundle também fornece um método para obter matrizes de cadeia de caracteres, getStringArraybem como um método genérico getObject para qualquer outro tipo de objeto. Ao usar getObject, você terá que converter o resultado no tipo apropriado. Por exemplo: <blockquote>
int[] myIntegers = (int[]) myResources.getObject("intList");
</blockquote>
A Plataforma Java fornece duas subclasses de ResourceBundle, ListResourceBundle e PropertyResourceBundle, que fornecem uma maneira bastante simples de criar recursos. Como você viu brevemente em um exemplo anterior, ListResourceBundle gerencia seu recurso como uma lista de pares chave/valor.
PropertyResourceBundle usa um arquivo de propriedades para gerenciar seus recursos.
Se ListResourceBundle estiver ou PropertyResourceBundle não de acordo com suas necessidades, você poderá escrever sua própria ResourceBundle subclasse. Suas subclasses devem substituir dois métodos: handleGetObject e getKeys().
A implementação de uma ResourceBundle subclasse deverá ser thread-safe se ela for usada simultaneamente por vários threads. As implementações padrão dos métodos não abstratos nessa classe e os métodos nas subclasses concretas conhecidas diretas ListResourceBundle e PropertyResourceBundle são thread-safe.
<h3>ResourceBundle.Control</h3>
A ResourceBundle.Control classe fornece informações necessárias para executar o processo de carregamento de pacote pelos métodos de getBundle fábrica que tomam uma ResourceBundle.Control instância. Você pode implementar sua própria subclasse para habilitar formatos de pacote de recursos não padrão, alterar a estratégia de pesquisa ou definir parâmetros de cache. Consulte as descrições da classe e do método de #getBundle(String, Locale, ClassLoader, Control) getBundle fábrica para obter detalhes.
<H3>Gerenciamento< de Cache/h3>
As instâncias do pacote de recursos criadas pelos getBundle métodos de fábrica são armazenadas em cache por padrão e os métodos de fábrica retornam a mesma instância do pacote de recursos várias vezes se ela tiver sido armazenada em cache.
getBundle os clientes podem limpar o cache, gerenciar o tempo de vida das instâncias de pacote de recursos armazenados em cache usando valores de vida útil ou especificar para não armazenar em cache instâncias do pacote de recursos. Consulte as descrições do método Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLive#clearCache(ClassLoader) clearCachegetBundle</code> factory #getBundle(String, Locale, ClassLoader, Control) <>e Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload para obter detalhes.
<h3>Exemplo</h3>
Veja a seguir um exemplo muito simples de uma ResourceBundle subclasse, MyResourcesque gerencia dois recursos (para um número maior de recursos que você provavelmente usaria um Map). Observe que você não precisa fornecer um valor se um "nível pai" ResourceBundle manipular a mesma chave com o mesmo valor (como para o okKey abaixo).
<blockquote>
// default (English language, United States)
public class MyResources extends ResourceBundle {
public Object handleGetObject(String key) {
if (key.equals("okKey")) return "Ok";
if (key.equals("cancelKey")) return "Cancel";
return null;
}
public Enumeration<String> getKeys() {
return Collections.enumeration(keySet());
}
// Overrides handleKeySet() so that the getKeys() implementation
// can rely on the keySet() value.
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("okKey", "cancelKey"));
}
}
// German language
public class MyResources_de extends MyResources {
public Object handleGetObject(String key) {
// don't need okKey, since parent level handles it.
if (key.equals("cancelKey")) return "Abbrechen";
return null;
}
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("cancelKey"));
}
}
</blockquote> Você não precisa se restringir ao uso de uma única família de ResourceBundles. Por exemplo, você pode ter um conjunto de pacotes para mensagens de exceção, ExceptionResources (ExceptionResources_fr, ExceptionResources_de, ...) e um para widgets, WidgetResource (WidgetResources_fr, , WidgetResources_de...); quebrando os recursos como quiser.
Adicionado em 1.1.
Java documentação para java.util.ResourceBundle.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.
Construtores
| Nome | Description |
|---|---|
| ResourceBundle() |
Construtor exclusivo. |
| ResourceBundle(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime. |
Propriedades
| Nome | Description |
|---|---|
| BaseBundleName |
Retorna o nome base desse pacote, se conhecido ou |
| Class |
Retorna a classe de tempo de execução deste |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| JniIdentityHashCode |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| JniPeerMembers |
Os pacotes de recursos contêm objetos específicos da localidade. |
| Keys |
Retorna os nomes dos recursos contidos neste |
| Locale |
Retorna a localidade desse pacote de recursos. |
| Parent |
O pacote pai desse pacote. |
| PeerReference |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| ThresholdClass |
Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
| ThresholdType |
Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
| Nome | Description |
|---|---|
| ClearCache() |
Remove todos os pacotes de recursos do cache que foram carregados usando o carregador de classe do chamador. |
| ClearCache(ClassLoader) |
Remove todos os pacotes de recursos do cache que foram carregados pelo carregador de classe fornecido. |
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| ContainsKey(String) |
Determina se o determinado |
| Dispose() |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| Dispose(Boolean) |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| GetBundle(String, Locale, ClassLoader, ResourceBundle+Control) |
Obtém um pacote de recursos usando o nome base especificado, a localidade padrão e o carregador de classe do chamador. |
| GetBundle(String, Locale, ClassLoader) |
Obtém um pacote de recursos usando o nome base, a localidade e o carregador de classe especificados. |
| GetBundle(String, Locale, ResourceBundle+Control) |
Obtém um pacote de recursos usando o nome base especificado, a localidade padrão e o carregador de classe do chamador. |
| GetBundle(String, Locale) |
Obtém um pacote de recursos usando o nome base e a localidade especificados e o carregador de classe do chamador. |
| GetBundle(String, ResourceBundle+Control) |
Obtém um pacote de recursos usando o nome base especificado, a localidade padrão e o carregador de classe do chamador. |
| GetBundle(String) |
Obtém um pacote de recursos usando o nome base especificado, a localidade padrão e o carregador de classe do chamador. |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| GetObject(String) |
Obtém um objeto para a chave fornecida desse pacote de recursos ou de um de seus pais. |
| GetString(String) |
Obtém uma cadeia de caracteres para a chave fornecida desse pacote de recursos ou de um de seus pais. |
| GetStringArray(String) |
Obtém uma matriz de cadeia de caracteres para a chave fornecida desse pacote de recursos ou de um de seus pais. |
| HandleGetObject(String) |
Obtém um objeto para a chave fornecida desse pacote de recursos. |
| HandleKeySet() |
Retorna uma |
| JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
| KeySet() |
Retorna uma |
| Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
| NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| SetParent(ResourceBundle) |
Define o pacote pai desse pacote. |
| ToArray<T>() |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| UnregisterFromRuntime() |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| Wait() |
Faz com que o thread atual aguarde até que seja despertado, normalmente sendo <notificado></em> ou <em>interrompido</em>. (Herdado de Object) |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
| Wait(Int64) |
Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IJavaPeerable.Disposed() |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| IJavaPeerable.Finalized() |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| IJavaPeerable.JniManagedPeerState |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Os pacotes de recursos contêm objetos específicos da localidade. (Herdado de Object) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Os pacotes de recursos contêm objetos específicos da localidade. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |