Yeniden sorun yaşıyorum. Bir Android uygulamasının kaynakları:Bir Android uygulamasının kaynaklarına statik erişim?
Uygulamam yanlış yazılmış. Bir numaralandırma türü kullanarak tanımlamak istediğim modlar (edit/plan/exec). Ben, ancak, kaynak string.xml dosyadan kök dizeleriyle numaralandırma-değerleri doldurmak için, yani yerine
enum Mode {
EDIT ("edit"),
PLAN ("plan"),
EXEC ("exec");
String name;
Mode(String name) { this.name = name; }
@Override
public String toString() { return this.name; }
};
I gibi bir şey yazmak istiyorum istiyorum:
enum Mode {
EDIT (getResources().getText(R.string.mode_edit).toString()),
PLAN (getResources().getText(R.string.mode_plan).toString())),
EXEC (getResources().getText(R.string.mode_exec).toString()));
String name;
Mode(String name) { this.name = name; }
@Override
public String toString() { return this.name; }
}
hangi örneğin kaynak ismini kullanarak modların isimlerini değiştirmeye izin verin ve böylece kod değişiklikleri, uluslararasılaştırma vb. olmadan daha sonraki isim değişikliklerine izin verin.
Sorun, kaynaklara standart erişimin bir Activity's getResources() - yöntemiyle yapılmasıdır. Sadece kurucuda kullanılabilir (ve örnek yöntemler sırasında). Ancak, numaralandırma beyanı, bir sınıfın statik başlatma kodunun parçasıdır. Bir uygulamanın kaynaklarına statik bir şekilde erişmenin herhangi bir yolu var mı?
Michael
böyle bağlam etrafında dikkatli geçen olun. Kendinizi kötü bellek sızıntılarına açabilirsiniz. – Drew