2012-03-06 15 views
6

Czy można programowo zmienić wartości narzędzia R.string w programie dla systemu Android? Muszę pobrać pewne informacje API (na przykład stan naładowania baterii, procent baterii, wersję Androida OS) i zapisać ją jako wartość R.string. Wiem, jak go odczytać:Zmiana wartości R.String Programowo

String helloValue= getResources().getString(R.string.hello); 

Ja również spojrzał na: Change value of R.string programically? ale wydaje się, że tylko wiąże się ze zmianą języka i skończył robi to w inny sposób. Czy ktoś może pożyczyć rękę? Ja również wyglądał tutaj: http://developer.android.com/guide/topics/resources/string-resource.html i nie znalazł nic, aby pomóc albo :(

+1

Ciągi w R są generowane podczas kompilacji i nie mogą być modyfikowane o ile wiem. Zamiast tego możesz zapisać ciągi jako SharedPreferences: http://developer.android.com/guide/topics/data/data-storage.html#pref – Jave

Odpowiedz

11

Można” t dynamicznie zmieniaj ciągi strings.xml, ponieważ jest to skompilowany zasób. Istnieją inne mechanizmy zapisywania danych w systemie Android, oto miły wpis, który obejmuje ten temat: Data Storage. Mam nadzieję że to pomoże.

2

Jeśli trzeba zapisać niewielkie ilości informacji String należy używać SharedPreferences to jest dokładnie to, co jest dla :)

0

Istnieje wiele sposobów na ukończenie pomysłów. Ale nie możesz zmienić zasobu String, (jak również zasobu R.java), zasobu układu, ... i jakiegokolwiek innego zasobu. Możesz to zrobić, zmieniając zasób na zasoby. to może czytać i pisać :)

0

W ten sposób można uzyskać wartość z res/string.

String str = getResources().getString(R.string.<name_of_value>); 

Teraz możesz dalej korzystać z tej wartości tej zmiennej łańcuchowej (str).
Ale według mnie nie ma sposobu, aby ustawić wartość res/string