Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
MSC2
0 / 0 / 0
Регистрация: 03.05.2017
Сообщений: 12
#1

Сохранение положения seekbar (не сохраняет прогресс при повторном обращении) - Программирование Android

03.05.2017, 22:29. Просмотров 347. Ответов 13
Метки нет (Все метки)

Добрый вечер, возник еще один вопрос:
Как в SeekBar сохранить прогресс на ползунке, после повторного обращения к приложению, он находится в максимальном положении, хотя должен отображать свое последнее состояние, тк оно дублируется в textView и сам seekbar ссылается на это textView/ Подскажите, что здесь неправильно?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    TextView textView;
    SeekBar seekBar;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_main);
 
        seekBar = (SeekBar) findViewById(R.id.seekBar);
        textView = (TextView) findViewById(R.id.textView);
        seekBar.setMax(200);
 
 
 
        seekBar.setProgress(R.id.textView); !!!!!!!!!!!!!!!!!!(ссылается на изменяемое textView, но не фиксирует это положение)
 
 
 
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                textView.setText(String.valueOf(progress));
 
            }
 
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
 
            }
 
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
 
            }
 
        });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2017, 22:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сохранение положения seekbar (не сохраняет прогресс при повторном обращении) (Программирование Android):

Чек большого количества togglebutton при прогрессе seekBar тормозит - Программирование Android
Суть проблемы: есть 81 togglebutton у которых меняется background при помощи селектора. Эти кнопки чекаются за счет прогресса Seekbar....

Дубликация данных при повторном обращении к серверу - C# WCF
при повторном обращении к серверу данные дублируются если обратится в третий раз данные утраиваются и тд.Почему так происходит?

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

При повторном обращении к объекту меняется его содержимое - C++
Добрый день! У меня такая странная проблема: есть две одинаковые строчки кода подряд: cout << testTree.rightSon->siz << endl; ...

ТВ-тюнер Авер медиа. При повторном обращении к программе она зависает - Компьютерное железо
Здравствуйте,у меня проблема такова.Я купил ТВ тюнер Авер медиа,так он работает нормально,но когда подключаешь кабель программа один раз...

Программа при повторном обращении на страницу (но уже с другими параметрами) отображает одно и тоже - Delphi FireMonkey
Проблема вроде в том что программа при повторном обращении на страницу(но уже с другими параметрами) отображает одно и тоже :( ...

13
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
03.05.2017, 23:42 #2
Мдаа... Если очень коротко, ибо я устал, то ты передаёшь в прогресс не прогресс, а id текствью, очевидно, он больше 200.
2
MSC2
0 / 0 / 0
Регистрация: 03.05.2017
Сообщений: 12
04.05.2017, 00:50  [ТС] #3
В этом понятно, извиняюсь за дилетантский вопрос, но как передать значение моего текствью в виде числа? Я пытался сослаться на переменную текствью, тоже не работает, в этом случае прогресс остается на нуле.
0
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
04.05.2017, 01:44 #4
Не знаю, что у тебя там, но как-то так:
Java
1
seekBar.setProgress(Integer.parseInt(textview.getText().toString()));
При соблюдении пары условий должно работать.
0
_Night_Scream_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 612
04.05.2017, 07:56 #5
не забываем обернуть в try catch
0
MSC2
0 / 0 / 0
Регистрация: 03.05.2017
Сообщений: 12
04.05.2017, 23:09  [ТС] #6
Цитата Сообщение от ExFau$t Посмотреть сообщение
Integer.parseInt(textview.getText().toString()))
В общем это почему-то не работает,

Делал так:

Java
1
2
3
4
5
6
7
8
9
10
11
  seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
 
 
 
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
 
                    textView.setText(String.valueOf(progress));
                    seekBar.setProgress(Integer.parseInt(textView.getText().toString()));
 
            }


Условия прописывал по образцам, результат - либо приложение не запускается, либо ползунок на нуле после повторного обращения. Я хоть и неплохо умею искать инфу, но, в этом, казалось, пустяковом вопросе, полнейший мрак. Может у кого нибудь есть кусок этого или подобного кода??
0
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
04.05.2017, 23:25 #7
Во-первых, то, что ты написал - бред сивой кобылы под лсд.
Во-вторых, никто здесь знать не знает, что у тебя в textview, и есть ли там вообще что-нибудь подходящее. Да даже задачу я не понял, записать в тектвью прогресс, чтобы потом вытащить оттуда в сикбар...
0
MSC2
0 / 0 / 0
Регистрация: 03.05.2017
Сообщений: 12
05.05.2017, 00:10  [ТС] #8
Да, я понимаю, что со стороны это смотрится странно, но долго объяснять как так получилось, что я задаю такие вопросы. В кратце - мне создавали приложение, я переделываю в нем некоторые моменты (тк разработчик пока что не может заняться снова этой работой) не имея должных знаний (я не программист и у меня даже в школе не было толком уроков информатики)))). Очень многое в приложении мне удалось сделать самому, никого не доставая глупыми вопросами и тп (только чтение форумов, youtube и тп).

Суть такая что, в textView отображается прогресс seekBar, то есть я двигаю ползунок seekBar, прогресс отображается в textView, и уже из этого textView другая активити беред данные. Проблема только в том, что все работает, кроме прогресса seekBar (при повторном обращении в приложение seekBar мне показывает положение ползунка на нуле либо на максимуме, а в textView, например показано, что положение seekBar на 50). В приложении используются данные согласно сведений textView (поэтому проблема чисто эстетическая, тк seekBar (графическое отображение seekBar, не знаю как еще понятнее написать) на нуле либо на максимуме, что некорректно. Вопрос был только в том, чтобы сохранять положение seekBara в соответствии с его последним положением (что продублировалось в textView).

Я понимаю, что, всех бесят некомпетентые люди в определенных вопросах, но идти учиться 5 лет программированию и столько же заниматься самообразованием, ради того чтобы узнать как сохранять прогресс seekBara тоже бред сивой кобылы под лсд), поэтому обращаюсь к знающим людям за помощью, надеюсь на понимание.
0
MSC2
0 / 0 / 0
Регистрация: 03.05.2017
Сообщений: 12
05.05.2017, 00:24  [ТС] #9
Вот такую ситуацию я имел в виду
0
Миниатюры
Сохранение положения seekbar (не сохраняет прогресс при повторном обращении)  
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
05.05.2017, 01:42 #10
Хочешь фокус? Если взять значение, которое пишется в textview, и поставить его в прогресс, то будет то, что нужно.
0
MSC2
0 / 0 / 0
Регистрация: 03.05.2017
Сообщений: 12
06.05.2017, 15:09  [ТС] #11
Цитата Сообщение от ExFau$t Посмотреть сообщение
Хочешь фокус? Если взять значение, которое пишется в textview, и поставить его в прогресс, то будет то, что нужно.
Я понимаю, что нужно передать это значение, я не понимаю как его передать, изначально я думал, что будет достаточно этого кода:
Java
1
2
3
4
5
6
7
 @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
 
                    textView.setText(String.valueOf(progress));
                    seekBar.setProgress(progress);
 
            }
Но это не работало, потом понял, что setProgress должен объявляться раньше seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener().

вставил в OnCreate такой код:

Java
1
2
String num1 = textView.getText().toString();
        seekBar.setProgress(Integer.parseInt(num1));
Тоже не работает, приложение не запускается.
0
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
06.05.2017, 17:23 #12
Java
1
2
3
4
5
6
7
8
int default = 115;
textView.setText(String.valueOf(default));
seekBar.setProgress(default);
 
@Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    textView.setText(String.valueOf(progress));
            }
Хотя бы так.
0
MSC2
0 / 0 / 0
Регистрация: 03.05.2017
Сообщений: 12
11.05.2017, 21:41  [ТС] #13
Цитата Сообщение от ExFau$t Посмотреть сообщение
1
2
3
4
5
6
7
8
int default = 115;
textView.setText(String.valueOf(default));
seekBar.setProgress(default);
@Override
* * * * * * public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
* * * * * * * * * * textView.setText(String.valueOf(progress));
* * * * * * }
Хотя бы так.
В этом случае отображалось только 115)) Ну это и так понятно, получилось все-таки, но через двойное присвоение переменной, сначала seekbar грузит инфу в программу, потом эта инфа выгружается в текствью и уже прогресс устанавливается в соответствии с этим текствью. Логика корявая, но главное работает. Спасибо за наводки!

Java
1
2
textView.setText(String.valueOf(appPreferences1.getLineThickness()));
        seekBar.setProgress(Integer.parseInt(textView.getText().toString()));
0
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
11.05.2017, 22:44 #14
Логика вообще ни о чём, если это настройки, они пишутся в sharedPreference, в onCreate присваеивается прогресс и текствью оттуда, потом в onProgressChanged отслеживается новое положение и пишется в текствью, при выходе записывается в sharedPref и усё. Либо просто в sharedPref или в ресурсы положить константное дефаултное значение и ничего не записывать.
0
11.05.2017, 22:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2017, 22:44
Привет! Вот еще темы с ответами:

Ошибка "Сервер RPC недоступен" при повторном обращении к Word - C#
Добрый день! Вывожу на печать с формы в документ Word. Все получается. Но при закрытии и при повторном нажатии по кнопке печать, ошибка...

При повторном "обращении" к заранее созданному массиву последний элемент отображается неверно - C++
собственно заполняем массив int рандомом через функцию (ну в задании указано - заполнить через функцию, поэтому и такой ход). Потом из...

Сохранение значений переменных при повторном запуске скрипта - Perl
Заметил некоторую странность - то ли это баг, то ли я чего-то не догоняю. Берём скрипт вроде этого: use strict; our $i; $i++; ...

Prototype не сохраняет прогресс игры - Action/FPS игры
На мисси 7-8 как-то раз он сам сохранил и все... дальше играешь проходишь он пишит что сохранил... потом вышел из игры через время опять...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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