Как изменить цвет TextView в одном упражнении, нажав кнопку в другом? - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть два действия, в задании (1) У меня есть TextView, в задании (2), у меня есть кнопка.Я хочу изменить цвет TextView в упражнении (1), нажав кнопку в упражнении (2), и сохранить этот цвет.Как я могу это сделать?

Ответы [ 5 ]

0 голосов
/ 07 февраля 2019

Есть много способов изменить цвет текста из другого действия.

Первый

передать значение цвета, используя намерение

Код

Main2Activity.java

 button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int color=getResources().getColor(R.color.colorAccent);
            Intent intent=new Intent(Main2Activity.this,MainActivity.class);
            intent.putExtra("color",color);
            startActivity(intent);
        }
    });

MainActivity.java

  android_text=findViewById(R.id.android_text);
    color=getIntent().getIntExtra("color",0);
    android_text.setTextColor(color);

Второй способ

использовать статическую переменную

код

MainActivity.java

  static int color;
    android_text=findViewById(R.id.android_text);
    android_text.setTextColor(color);

Main2Activity.java

  button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           //set color
            MainActivity.color=getResources().getColor(R.color.colorAccent);
            Intent intent=new Intent(Main2Activity.this,MainActivity.class);
            startActivity(intent);
        }
    });

enter image description here

после обновления

enter image description here

Надеюсь, его работа для вас

0 голосов
/ 07 февраля 2019

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

Для хранения цвета текста:

  1. Использовать SharedPreference

  2. Использовать комнату или базу данных SQLite

  3. Сохранить цвет в классе Singleton

  4. или откройте второе действие, используя startActivityForResult (), если вы возвращаетесь к 1-му действию после завершения 2-го задания.

Для изменения цвета текста:

  1. Используйте Listener для изменения цвета текста, когда вы нажимаете кнопку из 2-го упражнения

  2. Используйте EventBus, если вы уже внедрили его в свой проект

  3. Использование локального приемника вещания (Отправить трансляцию на 1-е занятие после нажатия кнопки 2-го занятия)

0 голосов
/ 07 февраля 2019

Вы можете сохранить свой цвет с помощью общих настроек при нажатии кнопки, а затем получить его:

В упражнении 2 при нажатии кнопки :

 PreferenceManager.getDefaultSharedPreferences(MainActivity.this)
        .edit()
        .putString(key, value).apply();

И в упражнении 1 получите значение, которое вы сохранили:

PreferenceManager.getDefaultSharedPreferences(DriverScreen.this).getString(key, "default value")
0 голосов
/ 07 февраля 2019

Существует множество решений вашей проблемы

  1. Вы можете использовать sharepreference.
  2. Вы можете использовать одноэлементный класс.
  3. Вы можете использовать EventListener.
  4. Вы можете использовать intent.putExtra () для этой цели
0 голосов
/ 07 февраля 2019

Вы должны использовать базу данных, чтобы сохранить цвет textview и получить цвет из базы данных.при нажатии на кнопку вы можете изменить его в базе данных.

...