Olá Experts!
Acredito ser um duvida simples.
Estou tentando passar informação para string mas não estou conseguindo, conseguem apontar onde estou errando?
A origem da informação é esta(os txtXXXXX tem informação no conteudo, visualizando o mText):
Já tentou testar sem o final no construtor das variáveis?
Jhonatan_Moreira, boa noite!
Muito obrigado pelo auxilio, fazendo o teste conforme informou, apresenta o erro na declaração das variáveis:
Sabes no Android como as variáveis Strings podem receber o conteúdo dos componentes das TextViews?
Agradecido,
Ele está usando inner classes ou anonimous classes e, por estas razões, precisa que sejam final.
O problema é que uma String final jamais será alterada.
A minha sugestão é: não use inner/anonimous classes.
Eu não entendo muito de Android, mas, penso que tem como fazer sem isso.
Olá darlan_machado!
Eu não entendo de inner classes ou anonimous classes, só estou seguindo um tutorial e adaptando a minha necessidade, mas não estou mudando nada da sua estrutura.
Desde já agradeço a ajuda.
Inner class:
public class Foo {
private class Inner extends Another {} //Inner class
}
Anonimous:
public interface Iface {}
publc class Foo {
private Iface iface = new Iface() {};//Anonimous
}
O que acontece é que, no caso de qualquer uma delas, se você quer passar um atributo para algum método da classe interna ou da anônima, a partir da classe “externa”, este atributo, obrigatoriamente, precisa ter sido declarado como final.
Ocorre que, diferente de um objeto de List, por exemplo, a String declarada como final jamais vai ser alterada, então, não faz sentido declarar uma variável como final se o objetivo é definir outro valor para ela.
O que você pode fazer?
A partir do método da classe interna ou anônima, invocar métodos setters da classe “externa”.
public class Foo {
private String nome;
public void setNome(String nome) {
this.nome = nome;
}
public void getNome() {
return this.nome;
}
private class Inner {
public void blablabla() {
setNome("Astolpho"); //invocando o método da classe "externa"
}
}
}