Изучаю Android и наткнулся на непонятную мне вещь. Я давно не практиковался на Java и очень много подзабыл, так что возможно ошибка где-то на поверхности. Вернее не ошибка, а моё недопонимание.
Есть абсолютно пустой проект. Работаю через Android Studio.
Стандартный "Hello World!" на экране. Я данному TextView задаю android:id="@+id/text".
Далее к MainActivity я просто меня Hello World на другую строку. Но делаю это через метод.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.text);
textView.setText(randomText());
}
private String randomText(){
return "new String";
}
}
Вопрос: А это вообще законно?
randomText() У МЕНЯ НЕ СТАТИЧЕСКИЙ!
И по идеи, что бы его вызвать, мне нужен объект класса MainAcrivity. Но у меня выходит вызвать данный метод без экземпляра класса 😵🤯.
Если я сделаю такую же ситуацию в IDEA в методе main, то мне укажет на "Error:(17, 20) java: non-static method randomText() cannot be referenced from a static context"
Я чего-то не понимаю. Как это работает? Через неявное this? Или что?
Знающие люди, подскажите пожалуйста. Или подскажите где копать и в каком направлении гуглить. Спасибо!