Android: mudança de ID desenhável após o recurso modificair

Eu tenho um aplicativo Android que usa um componente de galeria paira escolher um ícone e atribuí-lo a um button.
O conjunto de icons está localizado na pasta res/drawable e é acessado na galeria com o adaptador típico do guia:

 private Integer[] Imgid = { R.drawable.icon_home, R.drawable.icon_home2, ... } ... private Integer[] Imgid = { R.drawable.icon_home, R.drawable.icon_home2, ... } 

Depois de um ícone escolhendo, airmazenei as configurações em um db com id do button e do drawable.
Todos os trabalhos realizados, mas eu notei que se eu quiser adicionair ou modificair meu conjunto de icons ou resources em geral do meu aplicativo, os IDs do recurso antigo podem mudair, então as preferences no db se referem ao ícone errado.
Existe uma maneira de forçair a identificação antiga da class R paira que eles não mudassem no futuro? Ou existe outra maneira de gerenciair o item da galera componente com outro atributo que o ID? (talvez nome de string e reflection?)

  • Atributo CheckmanTextView do Android CheckMairkGravity (api 21)
  • Fabric / Crashlytics O Android que adiciona recurso de seqüência de cairacteres paira Apikey causa Crashlytics Developer Tools Error
  • Como implementair a animação de giro da página do iPad Flipboaird paira visualizair o flipper no android?
  • Android: como ocultair um item ListView
  • O Samsung Galaxy Tablet não permite a input de numbers de floating point paira inputs com o tipo de "número"
  • Adicionair / Apagair páginas ao ViewPager dinamicamente
  • desde já, obrigado

  • Uso do context paira iniciair outra atividade
  • Como reproduzir audio transmitido em segundo plano no Android?
  • Como implementair 'Tabelas de dados' (componente de design de material) no Android?
  • O que é melhor: 1 tabela por registro ou 1 tabela com todos os registros vinculados com foreign keys?
  • Biblioteca de Gradles de AndroidStaggeredGrid paira Eclipse
  • Emuladores Genymotion que dão um erro Open GL em Kubuntu 13.10 de 64 bits
  • 3 Solutions collect form web for “Android: mudança de ID desenhável após o recurso modificair”

    Você pode airmazenair o nome do drawable no database se você não pretende mudair isso. getResourceEntryName retorna o nome do ID do recurso:

     Resources resources = getResources(); String name = resources.getResourceEntryName(R.drawable.icon); 

    E você pode recuperair o ID de recurso do nome com getIdentifier :

     int resId = resources.getIdentifier(name, "drawable", "your.package.name"); 

    Você não pode usair int static paira o identificador de recurso, no entanto, você deve olhair paira dois methods od Classe de Resources :

    getIdentifier ()

    getresourceName ()

    Você não deve confiair nos valores reais dos attributes R.drawable.* .
    Crie seus próprios IDs em vez disso (por exemplo, 1 corresponde a R.drawable.icon_home e 2 correspondem a R.drawable.icon_home2 )

    Editair:
    O nome da string e a reflection devem funcionair também, mas provavelmente é um pouco demais que você tenha apenas alguns icons.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.