Форум программистов, компьютерный форум CyberForum.ru

При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё - Android

Восстановить пароль Регистрация
 
Drago56
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 37
28.05.2016, 16:53     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё #1
Как на Android Studio передать информацию? Нужны при открытии программы узнать данные которые хранятся в второй форме Activity, не переходя на неё. Пробовал делать так:
Отправка даннцых из Радиобутона на главную форму.
Java
1
2
3
4
5
6
7
 butt2_1 = (RadioButton) findViewById(R.id.radioButton1);//сохранение настройек
 
        Intent intent = new Intent(Main2Activity.this, MainActivity.class);
        if(mSet.contains(BOOL_CHECK_RADIOBUTTON1)){butt2_1.setChecked(mSet.getBoolean(BOOL_CHECK_RADIOBUTTON1, false));}
        boolean checked = butt2_1.isChecked();
        intent.putExtra("get_text",checked);
        startActivity(intent);
Прием данных на главной форме
Java
1
2
3
4
5
6
tt= (TextView) findViewById(R.id.textView);
        Intent intent = getIntent();
        checked = intent.getBooleanExtra("get_text",checked);
        if(checked == true) {tt.setText("Ok");}
        else {tt.setText("Net");}
    }
И надо узнать наша радиобуттон активен или нет.
Когда перехожу на вторую форму, тут же меня она возращает на главную форму, и тогда показывает результат.
Как можно сделать типо так как на с++ .Пример:Bool buff = Form2->RadioButton->Checket;
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2016, 16:53     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё
Посмотрите здесь:

Узнать текущую Activity Android
Небольшой конфуз с запуском второй Activity Android
Узнать завершил ли работу Activity (не AsyncTask) Android
Android Данные из DialogFragment в Activity
Как открыть Activity по открытии ссылки? Android
Android Передача данных из первого activity во второй и сохранения getSharedPreferences
Android Ошибка при открытии новой activity
Изменение TextView во второй Activity Android
При попытке открыть второй и третий Activity происходит завершение работы программы Android
Узнать будет ли Activity пересоздана Android
Передать данные при клике на listview в другое activity Android
Android Как связать основную Activity со второй

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir93
26 / 26 / 3
Регистрация: 28.06.2015
Сообщений: 109
31.05.2016, 09:26     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё #2
Как то это сложно. А почему нельзя сохранить состояние в SharedPreferences. И при запуске первой активности проверять флаги, которые до этого сохранила вторая активность?
Kadagor
12 / 12 / 4
Регистрация: 17.09.2015
Сообщений: 45
31.05.2016, 11:43     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё #3
Если объявить переменную как public static получишь к ней доступ через Имя_класса.имя_переменой

Второй вариант: передача данных через putextra.
В первой активности запускаем вторую:
Java
1
2
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, SECOND_ACTIVITY_EXTRA);
И ждем ответа:
Java
1
2
3
4
5
6
7
8
9
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case SECOND_ACTIVITY_EXTRA:
                    checked = data.getBooleanExtra(SecondActivity.EXTRA_ANSWER);
                    break;
            }
        }
    }
Во второй отвечаем:
Java
1
2
3
Intent data = new Intent();
data.putExtra(EXTRA_ANSWER,butt2_1.isChecked());
setResult(RESULT_OK, data);
Оба варианта актуальны если активность с настройками перед этим запускалась. Если нет, от чего зависит дефолтное состояние переменной? Скорее всего ее состояние все равно будет хранится либо в базе, либо в SharedPreferences?
Соглашусь с Vladimir93, что SharedPreferences проще всего.

Добавлено через 6 минут
В MainActivity:
Java
1
private final int SECOND_ACTIVITY_EXTRA = любое_целое;
Добавлено через 2 минуты
В SecondActivity:
Java
1
 public static final String EXTRA_ANSWER = "имя_пакета.имя_класса.имя_переменной";
Drago56
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 37
31.05.2016, 15:26  [ТС]     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё #4
Спасибо за ответы сделал через SharedPreferences.
Еще вопрос как правильно считать данные из SharedPreferences в потоке мне приходит с датчика время и его надо каждую секунду выводить в другом Activity.Я так понял это же через отдельный поток делать надо?
Пробывал так:
Java
1
2
3
4
5
6
7
   new Thread(new Runnable() {
            public void run() {
                if(mSet.contains(TIME)) {buf_dat3 = mSet.getString(TIME, "");}
                time.setText(buf_dat3);
 
            }
        }).start();
Он считывает 1 раз и выводит.

Добавлено через 13 минут
Я неделю всего программирую на android studio,мало чего знаю. в моем решении действительно метод:Если объявить переменную как public static получишь к ней доступ через Имя_класса.имя_переменой...оказался проще т.к эти данные временные и мне не надо их сохранять...только как постоянно выводить в другом activity их?

Добавлено через 12 минут
при вводе такого кода он закрывает программу
Java
1
 if(MainActivity.split_buff2[0].equals("5555")){butt2_4.setChecked(true);}
Добавлено через 36 минут
1 раз выводит скорее всего что bluetooth соединение отключается почему то при переходе на др Actyvity
Kadagor
12 / 12 / 4
Регистрация: 17.09.2015
Сообщений: 45
31.05.2016, 16:15     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Drago56 Посмотреть сообщение
Еще вопрос как правильно считать данные из SharedPreferences
Объявляем:
Java
1
2
private SharedPreferences mySharedPreferences;
public static String preferenseFile = "preferense"; // имя файла где будут сохранены настройки.
Считываем данные из:
Java
1
2
3
4
5
int mode = Activity.MODE_PRIVATE;
mySharedPreferences = getSharedPreferences(preferenseFile, mode);
intVariable = mySharedPreferences.getInt("INT_VAL", 0); // 0 - значение которое вернет ф-я если переменная INT_VAL не существует
boolVariable = mySharedPreferences.getBoolean("BOOL_VAL", true);
stringVariable = mySharedPreferences.getString("STR_VAL","");
Сохраняем:
Java
1
2
3
SharedPreferences.Editor editor = mySharedPreferences.edit();
editor.putBoolean("fViewImage", fViewImage);
editor.apply();
Цитата Сообщение от Drago56 Посмотреть сообщение
эти данные временные и мне не надо их сохранять
SharedPreferences - удобный инструмент чтобы хранить настройки, если данные постоянно меняются он здесь не актуален
Цитата Сообщение от Drago56 Посмотреть сообщение
как постоянно выводить в другом activity их?
Как вариант установим таймер с обновлением в 1 сек.
Java
1
2
3
4
5
6
7
8
9
int timeToReset = 1;
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
        service.schedule(new Runnable() {
            @Override
            public void run() {
                // Здесь читаем данные и что-то с ними делаем
                time.setText(buf_dat3);
            }
        }, timeToReset, TimeUnit.SECONDS);
Добавлено через 8 минут
Упс, этот счетчик сработает только раз на 1 сек.
Используй:
Java
1
service.scheduleAtFixedRate(new Runnable() { ... }, 0, 1, TimeUnit.SECONDS);
Drago56
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 37
31.05.2016, 18:15  [ТС]     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё #6
Что то не получается,такое чувство что blutooth перестает принимать данные когда я ухожу с главной Activity.Хотя я ставил глобальные переменные.И когда возвращаюсь опять на главную форму данные снова начинаются приниматься

Добавлено через 1 минуту
Или неужели придется делать настраивать luetooth соединение на др форме?
Yandex
Объявления
31.05.2016, 18:15     При открытии программы узнать данные, которые хранятся в второй форме Activity, не переходя на неё
Ответ Создать тему
Опции темы

Текущее время: 07:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru