Olá tenho um app que usa com um objeto chamado Categoria, esse objeto tem três atributos: Nome , Uid (id única), e Ícone. O usuário pode editar nome e ícone desse objeto e criar quantos bem entender do mesmo. Pra persistir eu escrevo todos os dados no banco de dados é ai que começa o problema. Em alguns casos específicos os ícones de todas as categorias se embaralham e/ou as categorias recebem qualquer icone da pasta drawable. O ícone é setado dessa forma:
public void setIcone(int icone){
// passando R.drawable.iconeQueOusuarioEscolheu
this.icone=icone; }
Já revisei tudo relacionado a mudança de icones no código, rastreei e analizei cada método que usa o setIcone();
como não achei nada, configurei o metodo setIcone();
para gerar um log dos metodos que usam e oquais alteraçoes esses metodos fazem:
public void setIcone(int icone, String quem) {
trackThisBug(quem, getIcone(), icone);
this.icone = icone;
}
private void trackThisBug(String quem, int oldIcon, int newIcon) {
Calendar c = Calendar.getInstance();
try {
String dir = Environment.getExternalStorageDirectory() + "/patternDir/BugLog.txt";
FileWriter writer = new FileWriter(dir, true);
writer.write(quem + " alterou o icone de " + getNome() + " de " + oldIcon + " para " + newIcon +
" As " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + " em " +
c.get(Calendar.DAY_OF_MONTH)+1 + "/" + c.get(Calendar.MONTH)+"\n\n");
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Observando esse log reparei que quem altera os ícones é o metodo que lê as categorias do banco de dados
if (c.moveToFirst()) {
do {
Categoria cat = new Categoria();
cat.setNome(c.getString(0));
cat.setUid(c.getString(1));
cat.setIcone(c.getInt(2), "lendo todas as categorias na classe READ"); // bem nessa linha
array.add(cat);
} while (c.moveToNext());
}
Eu peguei o valor que ele setou como ícone nas categorias e fui na classe R ver oque era e não existia nenhum recurso com a id setada, não sei se a id dos recursos muda ou mas no momento é a minha única tese.
Senhores, procuro sugestões sobre como resolver o problema e caso conheçam um jeito melhor de armazenar ícones em objetos e queiram compartilhar ficarei grato, desde já obrigado!