Erro Android [iniciante]

Olá. Eu estou fazendo meu primeiro APP para Android. Estou utilizando a lib do Mysql. Gostaria de ter um array de botões criados de acordo com o resultado de uma query. E depois adicionar o array em um panel. Porém tem algo de errado com a minha sintaxe.

Alguém sabe me dizer o que eu estou fazendo de errado?

Simples, segundo a documentação, não existe nenhum método construtor da classe Button que receba uma String como argumento.

1 curtida

Isso eu imaginei. Mas o que eu quero saber é como ficaria esse construtor?

Viu o link que coloquei na resposta anterior? É da documentação da classe Button. Nela você consegue ver todos os construtores para o Button

Vi sim. Mas não tem o que e procuro. O button está sendo pego pela id. Eu quero instanciar um pelo código.

Acho que não leu toda a documentação, principalmente a parte dos construtores.

Cara, eu já havia lido a documentação logo quando eu vi esse erro. E li novamente só para ter certeza. O que eu quero saber é onde eu coloco o texto na instância? Porque a necessidade de passar um Context? Eu li sobre isso, pelo que entendi é uma maneira para fazer os novos objetos “entenderem” o que está acontecendo no programa.

Eu vi os construtores sim.

Tá aí o problema. Imaginei algo como new Context(String text). Mas não dá.

Todos os componentes do android estão amarrados a um contexto.
Se você der uma olhada em alguns métodos, verá que, quando solicitado um contexto, é passada a instância da classe que representa a activity em questão (aquela que vai ser aberta ou a que está em execução). Um exemplo bem claro disso é o momento em que se faz necessário criar uma Intent. Um dos construtores da Intent recebe um context e uma Class

Intent intent = new Intent(MinhaActivity.this, NovaActivity.class);

Como cada activity possui seus elementos, você precisa dizer qual o contexto em que este deverá ser criado.

Com relação ao texto, não existe construtor que receba uma String qualquer, como você pode ver na imagem que postou.

Entendi.

Tá, mas onde eu passo o texto?

Cara, dá uma pesquisada, olha na documentação, procura.
Na documentação está bem claro que nenhum dos construtores recebe uma String que represente o texto do button.
Mas, se você seguir este link link, que é referente a um método numa superclasse do Button, talvez você consiga encontrar a resposta.

1 curtida

Eu não acredito que não tentei um setText :joy:. Mas enfim, eu pensei que dava para passar no construtor, e evitar uma linha de código a mais. Já que não é possível, tudo bem. Obrigado pela ajuda.

Essa é a pergunta de todo programador estruturado: por que mais código é melhor que menos código?

1 curtida