Доступ к макету из другого действия в Android Studio

Я все еще новичок в java и android studio. Я хочу знать, есть ли способ получить доступ к макету в другом действии.

Я хочу иметь возможность изменить фоновое изображение моего основного действия с помощью другого действия. Таким образом, в моем основном действии есть кнопка, которая направит их к новому действию, и в этом новом действии есть несколько кнопок, которые будут настраивать фоновое изображение основного действия. (в основном нажмите кнопку, и фон изменится).

В моем main.xml я получил макет ограничения. Как мне получить доступ к этому макету ограничения в другом классе Java?

Я тоже много исследовал эту вещь, но безрезультатно. Вывод, к которому я пришел, заключался в том, что класс может получить доступ только к тем виджетам, которые присутствуют в макете, который он расширяет.

Piyush Maheswari 10.12.2020 14:11

Если ваше первое действие все еще активно, вы можете отправить сообщение из второго действия в первое действие через интерфейс или шину событий или даже данные в реальном времени.

Kristy Welsh 10.12.2020 14:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
793
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я думаю, ты не можешь этого сделать. Что вам нужно, так это передать некоторые данные в действие, которое вы хотите настроить из своего действия по настройке с намерением. Другой способ - вы можете использовать фрагменты, например DialogFragment, который просто прикреплен к вашей основной активности, чтобы вы могли его изменить.

Спасибо! Я думаю, я использую диалоговое окно тогда :)

cupcake 10.12.2020 15:56

Я только что попробовал, и это сработало T_T tysm, ты сохранил мой проект!!

cupcake 10.12.2020 16:53

@cupcake, вы можете получить доступ к объекту, но вы должны создать имя объекта как статическое. и вызов из NewActivity Но ваше представление может быть нулевым, если вы не вызовете findViewbyId! Вот и пример: ГлавнаяДеятельность

static TextView mTextViewTv;
static ConstraintLayout mLayoutCl;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTextViewTv = findViewById(R.id.helloWorldTv);
    mLayoutCl =findViewById(R.id.mLayout);
    mTextViewTv.setOnClickListener(v -> startNewActivity());
}


private void startNewActivity() {
    startActivity(new Intent(MainActivity.this,NewActivity.class));
}

Новая активность

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new);

  //you can call in on click, **Becareful with NUll expection**
//this is just example
  MainActivity.mLayoutCl.setBackgroundColor(getResources().getColor(R.color.black));
}

Этот тип метода НЕ РЕКОМЕНДУЕТСЯ

да, я могу получить к нему доступ, но он по-прежнему не меняет фон, я думаю, это бесполезно T_T, спасибо

cupcake 10.12.2020 16:00

ооо, а мой может измениться,

Nrohpos 11.12.2020 04:30

@cupcake Фон не изменился, потому что, когда вы вернетесь к предыдущему действию, будет вызван метод onCreate () этого действия, и все будет повернуто в исходное положение.

Rawnak Yazdani 14.09.2021 11:40

Другие вопросы по теме