>
Bom pessoal...
Minha dúvida é a seguinte:
Criei a seguinte matriz unidimensional:
String v[] = new String[3];
v[0] = "@drawable/imagem1";
v[1] = "@drawable/imagem2";
v[2] = "@drawable/imagem3";
Gostaria de colocar esse "caminho" da imagem num botão através do método setBackground da seguinte forma:
botao.setBackground(v[0]);
Já tentei usar o setBackgroundResource, porém ambos não aceitam String como argumento.
Alguém pode me ajudar?!
OBS. Não posso fazer de outras maneiras. Tem que ser com o uso da matriz!
o que você quer colocar no botão? o texto do caminho ? ou uma imagem no botão ?
Para colocar apenas o texto contido no vetor, use a instância criada do botão junto com o método setText(), passando por parâmetro o vetor desejado> Se deseja colocar um fundo no botão nao poderá apenas especificar o caminho em uma string, terá de utilizar o método setBackgroundResource enviando por parâmetro o id do fundo drawable através da classe R, por exemplo: setBackgroundResource (R.drawable.imagem1). note que a imagem1 de fundo deverá estar na pasta res/drawable para ser reconhecida
Eu quero colocar a imagem no botão...
Mas como eu disse, as imagens devem estar carregadas numa matriz, ou seja, não posso usar o código que vc sugeriu:
setBackgroundResource (R.drawable.imagem1);
Teria que ser algo parecido com:
setBackgroundResource (v[0]);
Entendeu?
Sim entendi, o que ocorre é que o método setBackgroundResource() requer um int que identifica a imagem na pasta res/drawable. Entenda que a cada recurso colocado na pasta res do android, é gerado na classe R um valor inteiro hexadecimal para você poder manipula-lo via código java. Logo você esta tentando passar um vetor de string, assim é apenas texto que vc esta tentando passar, e por mais que seja o caminho correto, não passará de um sinalização textual. Se no seu projeto requer muito usar vetores, sugiro que atribua o caminho das imagens em um vetor Integer(int/inteiro) e referencialos como parâmetro do método setBackgroundResource().
Ex: Int v[] = new Int[3];
v[0] = R.drawable.imagem1;
v[1] = R.drawable.imagem2;
v[2] = R.drawable.imagem3";
Assim o comando R.drawable.imagem1 retornará ao vetor v na posição 0 o valor hexadecimal dele na classe R, assim você poderá referencia-lo no método setBackgroundResource(). Espero que tenha ficado claro, qualquer coisa estamos ae!