Влияние действий в одной деятельности на другую в студии android - PullRequest
0 голосов
/ 13 марта 2020

В android студии У меня есть два вида деятельности: Основной и Настройки . Активность настроек вызывается из основной активности и есть кнопка выхода из системы. Когда я нажимаю на эту кнопку, действие настройки заканчивается, и основное действие появляется снова. Как я могу заставить основное действие знать, что была нажата кнопка выхода из системы?

А что, если в действиях с настройками можно выполнить много действий? Я не хочу возвращать результат в основное действие, я хотите записать эти действия куда-нибудь и прочитать оттуда в разделе «Основные действия».

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

В MainActivity вы можете запустить SettingActivity с помощью

Intent intent = new Intent(this, SettingActivity .class);
startActivityForResult(intent, yourRequestCode);

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

Intent intent= new Intent();
intent.putExtra("isClicked", true); // save clicked data
setResult(Activity.RESULT_OK, intent);
finish();

, затем в MainActivity вы можно звонить onActivityResult вот так

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_OK && requestCode == yourRequestCode) {
        Boolean isLogoutClicked = data.getExtras().getBoolean("isClicked");
    }

теперь вы получаете данные из действия настройки при нажатии кнопки выхода из системы.

0 голосов
/ 13 марта 2020

в mainActivity

Intent intent = new Intent(this, SettingActivity .class);
startActivityForResult(intent, 123);

чем

@Override
    protected void onActivityResult(int requestCode, int resultCode, 
      Intent data) {
      try {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 123  && resultCode  == RESULT_OK) 
       {
            String requiredValue = data.getStringExtra("key");
        }
    } catch (Exception ex) {
        Toast.makeText(Activity.this, ex.toString(),
                Toast.LENGTH_SHORT).show();
    }

}

и установите таким образом на экран настроек

Intent intent = getIntent();
intent.putExtra("key", value);
setResult(RESULT_OK, intent);
finish();

и проверьте, есть ли у значения данные или что-то, что вы прошли что это происходит с экрана настроек

...