#java #android
#java #Android
Вопрос:
Допустим, у меня есть:
родительское действие ParentActivity с неинициализированным именем общедоступного строкового поля
public class ParentActivity extends AppCompatActivity{
public String name;
}
Кроме того, два дочерних действия ChildOneActivity и ChildTwoActivity, где ChildOneActivity инициализирует имя строки и запускает ChildTwoActivity
public class ChildOneActivity extends ParentActivity{
name = "I'm a pizza";
launchChildTwoAct();
}
public class ChildTwoActivity extends ParentActivity{
Log.d(TAG, "the value of name is: " name);
}
Проблема: значение name печатается как null. Я в замешательстве, потому что оба дочерних элемента имеют одного и того же родителя… Я пытаюсь достичь этого без EventBus, намерений, пакетов или интерфейса
Вопрос: Означает ли это, что экземпляр поля name в родительском должен быть статическим, иначе name всегда будет null?
Комментарии:
1. Это просто наследование. Если вы расширяете класс, вы получаете поля для этого класса, но каждый экземпляр этого класса имеет свои собственные поля. Если вы хотите иметь одно общее значение поля, оно должно быть статическим. Просто представьте, что произошло бы, если бы ваш код работал. Например. У вас есть 2 кнопки. В одном случае вы меняете тег, а другой также изменяет тег, потому что кнопка расширить вид и представление имеет поле тега
2. Кстати, отличный пример, это действительно помогает. Спасибо.