Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
1

получение значений переменных из файла при возврате Activity на экран. правильно ли я поступаю ?

21.01.2019, 19:50. Показов 641. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется основное Activity приложения, которое ранее было перекрыто другим Activity (настройками), когда оно возвращается на экран - нужно чтобы оно изменило в себе значения некоторых переменных (типа int и double), на данные взятые из файла (в нашем случае таблицы .xls). При этом сам файл таблицы может и не существовать или иметь нужные нам ячейки пустыми. В таком случае значения этих переменных следует взять из метода defaultSet ().
Правильно ли я делаю ? вот так ...

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Override
    protected void onRestart() {
        super.onRestart();
        File file = new File("data/data/com.sukaba/Settingdays.xls");
        if (file.exists() && file.isFile()) {
            readingExcel(); //метод читающий Excel
            if (day==0 || month==0 || year==0 || gr==0 || lat==0 || lon==0) { // то есть типа переменные из пустого .xls
                defaultSet (); // метод содержащий дефолтные значения переменных
            } else {
                textView13.setText(IslamCheck()); // тут дальнейшие действия при существующем и заполненном файле
            }
        } else {
            defaultSet (); // опять таки метод содержащий дефолтные значения переменных
        }
    }
собственно метод чтения .xls
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void readingExcel() {
        try {
            Workbook wb = Workbook.getWorkbook(new File("data/data/com.sukaba/Settingdays.xls"));
            Sheet sheet = wb.getSheet(0);
            day = Integer.valueOf(sheet.getCell(5, 0).getContents());
            month = Integer.valueOf(sheet.getCell(6, 0).getContents());
            year = Integer.valueOf(sheet.getCell(7, 0).getContents());
            lat = Double.valueOf(sheet.getCell(5, 1).getContents());
            lon = Double.valueOf(sheet.getCell(6, 1).getContents());
            gr = Integer.valueOf(sheet.getCell(7, 1).getContents());
            chekheute = Integer.valueOf(sheet.getCell(8, 0).getContents());
            chekpash = Integer.valueOf(sheet.getCell(8, 1).getContents());
            chekislam = Integer.valueOf(sheet.getCell(8, 2).getContents());
            wb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
и метод содержащий дефолтные значения day, month, year, lat, lon и т.д.
Java
1
2
3
4
5
6
7
8
9
10
private void defaultSet () {
        Calendar clnd;
        clnd = Calendar.getInstance();
        day = clnd.get(Calendar.DAY_OF_MONTH);
        month = clnd.get(Calendar.MONTH) + 1;
        year = clnd.get(Calendar.YEAR);
        gr = 3;
        lat = 45.7000;
        lon = 39.4575;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2019, 19:50
Ответы с готовыми решениями:

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

Как правильно вести себя при возврате мат. платы
Здравствуйте! Такая ситуация. Заказал материнку в Юлмарте, но забирал ее оттуда человек, который не...

Как правильно обновить DataGridView при возврате из другой формы
Опять что-то конструктор поломался:- Private Sub TabPage3_Load(ByVal sender As Object, ByVal e As...

Как правильно вести себя при возврате неработающей материнской платы в магазин
Здравствуйте. Объясню ситуацию. Решил впервые собственноручно сделать апгрейд половины пк. Заменил...

3
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
21.01.2019, 20:07 2
А почему не в onResume()?

Добавлено через 5 минут
Abakus, чуть подробнее отсюда: https://stackoverflow.com/ques... -variables
0
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
21.01.2019, 21:20  [ТС] 3
Цитата Сообщение от jaman_smk Посмотреть сообщение
А почему не в onResume()?
вот и мне самому интересно. где правильнее? наверное потому, что "OnResume также будет вызываться сразу после OnCreate" я сам не уверен.
работает в общем и там и там, но как-то косо\криво.
например стоит один раз ввести в .xls пустые значения ячеек, как они перестают перезаписываться.
Впрочем это пожалуй, недостатки методов записи-чтения.
0
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
21.01.2019, 21:51 4
Abakus, если не уверен, тут есть жизненный цикл Activity, на него и стоит ориентироваться (в данной ситуации): https://developer.android.com/... p/Activity
1
21.01.2019, 21:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2019, 21:51
Помогаю со студенческими работами здесь

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

Получение значений переменных в классах
Столкнулся с таким вопросом. Функция adobj в классе Add обращается к внешней функции zap, передавая...

Поступаю учится на программиста, как правильно выбрать ноутбук.
Доброго времени суток, Нужна "машина", а что лучше выбрать не знаю. Помогите определиться что...

Добавить вывод на экран адресов всех переменных, а в конец – значений всех переменных
Никак не могу найти ошибки.И еще, в начало программы добавить вывод на экран адресов всех...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru