Работая с миром android hello, я добавил несколько строк в файл ресурсов strings.xml. Затем я попытался установить переменную-член моего основного класса активности в значение одной из строк:
public class MyActivity extends Activity {
/** Called when the activity is first created. */
public String myString = getString(R.string.MY_STRING); // compiles, but crashes
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText(myString);
setContentView(tv);
}
}
Когда он падает, я получаю это в logcat:
Невозможно создать экземпляр действия ComponentInfo {com.myclass}: java.lang.NullPointerException
Итак, я делаю это неправильно или это ожидаемое поведение? Просматривая документацию,
Я не вижу ничего, что могло бы заставить меня думать, что ресурсы не будут доступны, пока строится основная деятельность.
http://developer.android.com/guide/topics/resources/accessing-resources.html
Тем не менее, я почти уверен, что это будет работать в других классах - только не основной класс деятельности.