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

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

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

Чек большого количества togglebutton при прогрессе seekBar тормозит - Android

25.06.2016, 14:06. Просмотров 287. Ответов 10
Метки нет (Все метки)

Суть проблемы: есть 81 togglebutton у которых меняется background при помощи селектора. Эти кнопки чекаются за счет прогресса Seekbar. проблема в том, что не хватает времени на checked(true) (бекграунд батона соответственно то же не меняется). Т.е. я тяну SeekBar кнопки чекаются, только появляются пропуски чека. если тянуть SeekBar медленно то пропусков нету. почитал, что смена бекграунд трудоемкий процесс(а у меня по сути 81 батон и у каждого рисуется бекграунд при нажатии)

activity_main.xml
XML
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.roman.holdemsixplusapp.MainActivity"
    android:baselineAligned="false">
 
 
 
 
        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
 
          <ToggleButton
                android:background="@drawable/selectorpair"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="32dip"
                android:textOn="AA"
                android:textOff="AA"
                android:id="@+id/AA"
                android:layout_column="0"
                android:checked="false"
                android:layout_margin="3dip" />
 
Т.Д(много кнопок)
 
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dip">
 
        <SeekBar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:max="80"
            android:progress="1"
            android:id="@+id/seekBar" />
 
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="@string/_0"
            android:textSize="20sp"
            android:id="@+id/tvProgress"
            />
    </LinearLayout>
 
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
        <EditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/resultSpectre"
            android:inputType="textCapCharacters" />
    </LinearLayout>
 
</TableLayout>
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
MainActivity.java
package com.example.roman.holdemsixplusapp;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.ToggleButton;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
 
 
public class MainActivity extends AppCompatActivity {
    private TextView textView;
    private SeekBar seekBar;
    private EditText resultSpectre;
    protected String txtCheckedButton;
 
 
    private List<ToggleButton> buttons = new ArrayList<>();
    private List<String> textButton = new ArrayList<>();
    private List <String> handRankList= Arrays.asList(
            "AA","KK","QQ","JJ","TT","99","AKs","88","AQs","AKo",
            "AJs","KQs","ATs","AQo","77","KJs","AJo","KTs","A9s",
            "KQo","ATo","QJs","66","A8s","QTs","KJo","K9s","A7s",
            "JTs","A9o","KTo","QJo","A6s","Q9s","A8o","QTo","K8s",
            "J9s","K9o","K7s","A7o","JTo","T9s","Q8s","K6s","A6o",
            "Q9o","J8s","K8o","T8s","Q7s","J9o","98s","K7o","Q6s",
            "T9o","J7s","Q8o","K6o","T7s","J8o","97s","87s","T8o",
            "J6s","Q7o","T6s","98o","Q6o","96s","86s","J7o","76s",
            "T7o","97o","87o","J6o","T6o","96o","86o","76o"
    );
 
    private List <Integer> BUTTON_IDS= Arrays.asList(
            R.id.AA, R.id.AKs, R.id.AQs, R.id.AJs, R.id.ATs, R.id.A9s, R.id.A8s, R.id.A7s, R.id.A6s,
            R.id.AKo, R.id.KK, R.id.KQs, R.id.KJs, R.id.KTs, R.id.K9s, R.id.K8s, R.id.K7s, R.id.K6s,
            R.id.AQo, R.id.KQo, R.id.QQ, R.id.QJs, R.id.QTs, R.id.Q9s, R.id.Q8s, R.id.Q7s, R.id.Q6s,
            R.id.AJo, R.id.KJo, R.id.QJo, R.id.JJ, R.id.JTs, R.id.J9s, R.id.J8s, R.id.J7s, R.id.J6s,
            R.id.ATo, R.id.KTo, R.id.QTo, R.id.JTo, R.id.TT, R.id.T9s, R.id.T8s, R.id.T7s, R.id.T6s,
            R.id.A9o, R.id.K9o, R.id.Q9o, R.id.J9o, R.id.T9o, R.id.p99, R.id.s98, R.id.s97, R.id.s96,
            R.id.A8o, R.id.K8o, R.id.Q8o, R.id.J8o, R.id.T8o, R.id.o98, R.id.p88, R.id.s87, R.id.s86,
            R.id.A7o, R.id.K7o, R.id.Q7o, R.id.J7o, R.id.T7o, R.id.o97, R.id.o87, R.id.p77, R.id.s76,
            R.id.A6o, R.id.K6o, R.id.Q6o, R.id.J6o, R.id.T6o, R.id.o96, R.id.o86, R.id.o76, R.id.p66
    );
 
 
 
    @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.tvProgress);
        resultSpectre = (EditText) findViewById(R.id.resultSpectre);
 
 
        buttons = new ArrayList<>(BUTTON_IDS.size());
        textButton = new ArrayList<>();
 
 
 
        int count=0;
        while(count<BUTTON_IDS.size()) {
 
 
 
            final ToggleButton toggleButton = (ToggleButton) findViewById(BUTTON_IDS.get(count));
            buttons.add(toggleButton);
            count++;
            if (toggleButton != null) {
                toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        if (isChecked) {
 
                            txtCheckedButton = toggleButton.getText().toString();// переменная в которой хранится текст нажатой кнопки
                            textButton.add(txtCheckedButton); // происходит добавление в переменную листа текста нажатой кнопки (понадобится для последующего вывода
                            //спектра )
 
                        } else {
                            txtCheckedButton = toggleButton.getText().toString();
                            DeleteToStrBtn(txtCheckedButton, textButton);
 
                        }
                        LoadToStrBtn(textButton); //метод вывода спектра в текст
                    }
 
                });
            }
 
 
 
 
 
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
 
                textView.setText(String.valueOf(Progress100() + "%"));
                String rank=handRankList.get(progress);
 
                int count2=0;
                while (count2<BUTTON_IDS.size()){
 
 
 
                    if (rank.equals(buttons.get(count2).getTextOn().toString())){
                        buttons.get(count2).setChecked(true);
                    }
                    count2++;
                }
            }
 
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
 
            }
 
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
 
            }
        });
 
    }
    }
 
 
    private void LoadToStrBtn(List<String> textButton) {
        String all = "";
        for (String tb : textButton) {
            all = all + tb + "+";
 
        }
        resultSpectre.setText(all);
    }   //метод вывода спектра в текст
 
    private void DeleteToStrBtn (String txtCheckedButton, List <String> textButton){
        if (textButton.contains(txtCheckedButton)){
            textButton.remove(txtCheckedButton);
        }
 
 
    }
 
 
    private int Progress100 (){
        int progr=0;
        progr=this.seekBar.getProgress()*100/80;
                return progr;
    } // метод вывода в строку процента прогресс бара вместо 82% - 100%
 
 
        }
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
selectoroffsuited
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorOnButtonSpectre" android:state_checked="true"></item>
    <item android:drawable="@color/colorTogBuOffSu" android:state_checked="false"></item>
</selector>
 
selectorpair
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorOnButtonSpectre" android:state_checked="true"></item>
    <item android:drawable="@color/colorTogBuPair" android:state_checked="false"></item>
</selector>
 
selectorsuited
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorOnButtonSpectre" android:state_checked="true"></item>
    <item android:drawable="@color/colorTogBuSu" android:state_checked="false"></item>
</selector>
http://savepic.ru/10227797.png
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2016, 14:06     Чек большого количества togglebutton при прогрессе seekBar тормозит
Посмотрите здесь:

SeekBar thumb Android
Android Android и SeekBar OnSeekBarChangeListener
Массив из большого количества кнопок Android
Android SeekBar - движение по заданным значениям
Загрузка и отображение большого количества картинок с памяти телефона Android
Сохранение большого количества записей ключ-значение Android
Определение нажатия toggleButton Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2021 / 1763 / 548
Регистрация: 12.05.2014
Сообщений: 6,247
Завершенные тесты: 1
26.06.2016, 12:40     Чек большого количества togglebutton при прогрессе seekBar тормозит #2
нет особого желания дописывать недостающий код в разметке что бы запустить это чудо
из замечаний
- вместо List для хранения id элементов проще и эффективнее использовать int[]
- тоже самое и для хранения кнопок - массив вместо листа
- 81 слушатель для кнопок вместо одного
- 81 раз назначается и переназначается слушатель на seekbar
код ужасен, его надо сжечь и написать заново, по-нормальному
DJ_R_Maestro
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 6
27.06.2016, 22:31  [ТС]     Чек большого количества togglebutton при прогрессе seekBar тормозит #3
я только учусь, по этому знаю, что код ужасный.собственно здесь и зарегистрировался чтоб научится и обсудить свои ошибки.спасибо за ответ.
чудо запускается, и работает, но медленно.был бы благодарен ответу, как сделать 1 слушатель на сикбар и для кнопок вместо 81.заранее благодарен
кстати. а есть ли способ обойтись без кнопок в реализации данного функционала? копал в сторону canvas и рисовать его на разметке tablelayout но не получилось, т.к. rect рисуется не в ячейках, а чисто по канвасу.
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 547
28.06.2016, 09:43     Чек большого количества togglebutton при прогрессе seekBar тормозит #4
Как то так.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
view.setOnClickListener(onClick);
...
 
View.OnClickListener onClick = new View.OnClickListener() {
 @Override
 public void onClick(View view) {
  switch (view.getIdComponent()){
   case: ID
   
   break;
   case: ID2
   
   break;
...
  }
 }
};
или тут
Паблито
2021 / 1763 / 548
Регистрация: 12.05.2014
Сообщений: 6,247
Завершенные тесты: 1
28.06.2016, 10:18     Чек большого количества togglebutton при прогрессе seekBar тормозит #5
если решить это задачу крайне важно - лучше выложи весь код, что бы его можно было просто скопировать и запустить сразу
так будет намного проще
DJ_R_Maestro
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 6
28.06.2016, 11:12  [ТС]     Чек большого количества togglebutton при прогрессе seekBar тормозит #6
Цитата Сообщение от _Night_Scream_ Посмотреть сообщение
Как то так
т.е. я правильно понял, что мне нужно прописать через switch вызов всех 81 кнопок?я изначально так думал, но решил что это как то громоздко и написал обработчик через if.

Цитата Сообщение от Паблито Посмотреть сообщение
если решить это задачу крайне важно - лучше выложи весь код, что бы его можно было просто скопировать и запустить сразу так будет намного проще
ну здесь важно не только решить, а и разобраться писать правильный код (а не как у меня )
main_activity.java полностью выложен, activity_main.xml не пускает выложить все, т.к. много букв. прикреплю сейчас весь Project как есть. может подскажете как лучше организовать это все дело. кстати, возможно лучше программно создавать такое большое количество кнопок, а не задавать их через разметку xml?
так же прикреплю видео уже работающего приложения (только у меня кнопок будет меньше)для понимания конечной задачи. заранее спасибо за ответы!
Вложения
Тип файла: zip video_example.zip (1.49 Мб, 1 просмотров)
Тип файла: zip src.zip (42.1 Кб, 2 просмотров)
Паблито
2021 / 1763 / 548
Регистрация: 12.05.2014
Сообщений: 6,247
Завершенные тесты: 1
28.06.2016, 15:57     Чек большого количества togglebutton при прогрессе seekBar тормозит #7
посмотрел код, мне кажется проблема не в торможении UI
фишка в том, что если быстро дернуть seekbar то его значение изменится один раз, поэтому часть кнопок не поменяет свое состояние
DJ_R_Maestro
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 6
28.06.2016, 16:17  [ТС]     Чек большого количества togglebutton при прогрессе seekBar тормозит #8
Цитата Сообщение от Паблито Посмотреть сообщение
посмотрел код, мне кажется проблема не в торможении UI
фишка в том, что если быстро дернуть seekbar то его значение изменится один раз, поэтому часть кнопок не поменяет свое состояние
каким образом это можно исправить?
Паблито
2021 / 1763 / 548
Регистрация: 12.05.2014
Сообщений: 6,247
Завершенные тесты: 1
28.06.2016, 16:35     Чек большого количества togglebutton при прогрессе seekBar тормозит #9
я тут что-то такое натворил в коде, что запутался сам что было и стало

вопрос - если медленно тянуть ползунок вперед то кнопки должны перекрашиваться ппо рядам слева-направо или сначала диагональ становится красной, а потом все остальное?
DJ_R_Maestro
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 6
28.06.2016, 17:05  [ТС]     Чек большого количества togglebutton при прогрессе seekBar тормозит #10
там чекается согласно порядка
Java
1
2
3
4
5
6
7
8
9
10
11
private List <String> handRankList= Arrays.asList(
            "AA","KK","QQ","JJ","TT","99","AKs","88","AQs","AKo",
            "AJs","KQs","ATs","AQo","77","KJs","AJo","KTs","A9s",
            "KQo","ATo","QJs","66","A8s","QTs","KJo","K9s","A7s",
            "JTs","A9o","KTo","QJo","A6s","Q9s","A8o","QTo","K8s",
            "J9s","K9o","K7s","A7o","JTo","T9s","Q8s","K6s","A6o",
            "Q9o","J8s","K8o","T8s","Q7s","J9o","98s","K7o","Q6s",
            "T9o","J7s","Q8o","K6o","T7s","J8o","97s","87s","T8o",
            "J6s","Q7o","T6s","98o","Q6o","96s","86s","J7o","76s",
            "T7o","97o","87o","J6o","T6o","96o","86o","76o"
    );
это у меня реализует
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
String rank=handRankList.get(progress);//в rank пишем текст кнопки, которая по приоритету чекается первая
 
                int count2=0;
                while (count2<BUTTON_IDS.size()){
 
 
 
                    if (rank.equals(buttons.get(count2).getTextOn().toString())){  //смотрим какой кнопке еквивалентен текст из
//приоритетного листа  
                        buttons.get(count2).setChecked(true);//чекаем эту кнопку
                    }
                    count2++;
                }
Добавлено через 12 минут
подскажите, правильно реализовал один обработчик для SeekBar?
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package com.example.roman.holdemsixplusapp;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.ToggleButton;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
 
 
public class MainActivity extends Activity implements SeekBar.OnSeekBarChangeListener {
    private TextView textView;
    private SeekBar seekBar;
    private EditText resultSpectre;
    protected String txtCheckedButton;
 
 
    private List<ToggleButton> buttons = new ArrayList<>();
    private List<String> textButton = new ArrayList<>();
    private List <String> handRankList= Arrays.asList(
            "AA","KK","QQ","JJ","TT","99","AKs","88","AQs","AKo",
            "AJs","KQs","ATs","AQo","77","KJs","AJo","KTs","A9s",
            "KQo","ATo","QJs","66","A8s","QTs","KJo","K9s","A7s",
            "JTs","A9o","KTo","QJo","A6s","Q9s","A8o","QTo","K8s",
            "J9s","K9o","K7s","A7o","JTo","T9s","Q8s","K6s","A6o",
            "Q9o","J8s","K8o","T8s","Q7s","J9o","98s","K7o","Q6s",
            "T9o","J7s","Q8o","K6o","T7s","J8o","97s","87s","T8o",
            "J6s","Q7o","T6s","98o","Q6o","96s","86s","J7o","76s",
            "T7o","97o","87o","J6o","T6o","96o","86o","76o"
    );
 
    private List <Integer> BUTTON_IDS= Arrays.asList(
            R.id.AA, R.id.AKs, R.id.AQs, R.id.AJs, R.id.ATs, R.id.A9s, R.id.A8s, R.id.A7s, R.id.A6s,
            R.id.AKo, R.id.KK, R.id.KQs, R.id.KJs, R.id.KTs, R.id.K9s, R.id.K8s, R.id.K7s, R.id.K6s,
            R.id.AQo, R.id.KQo, R.id.QQ, R.id.QJs, R.id.QTs, R.id.Q9s, R.id.Q8s, R.id.Q7s, R.id.Q6s,
            R.id.AJo, R.id.KJo, R.id.QJo, R.id.JJ, R.id.JTs, R.id.J9s, R.id.J8s, R.id.J7s, R.id.J6s,
            R.id.ATo, R.id.KTo, R.id.QTo, R.id.JTo, R.id.TT, R.id.T9s, R.id.T8s, R.id.T7s, R.id.T6s,
            R.id.A9o, R.id.K9o, R.id.Q9o, R.id.J9o, R.id.T9o, R.id.p99, R.id.s98, R.id.s97, R.id.s96,
            R.id.A8o, R.id.K8o, R.id.Q8o, R.id.J8o, R.id.T8o, R.id.o98, R.id.p88, R.id.s87, R.id.s86,
            R.id.A7o, R.id.K7o, R.id.Q7o, R.id.J7o, R.id.T7o, R.id.o97, R.id.o87, R.id.p77, R.id.s76,
            R.id.A6o, R.id.K6o, R.id.Q6o, R.id.J6o, R.id.T6o, R.id.o96, R.id.o86, R.id.o76, R.id.p66
    );
 
 
 
    @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.tvProgress);
        resultSpectre = (EditText) findViewById(R.id.resultSpectre);
 
 
        buttons = new ArrayList<>(BUTTON_IDS.size());
        textButton = new ArrayList<>();
        seekBar.setOnSeekBarChangeListener(this);
 
 
        int count = 0;
        while (count < BUTTON_IDS.size()) {
 
 
            final ToggleButton toggleButton = (ToggleButton) findViewById(BUTTON_IDS.get(count));
            buttons.add(toggleButton);
            count++;
            if (toggleButton != null) {
                toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        if (isChecked) {
 
                            txtCheckedButton = toggleButton.getText().toString();// переменная в которой хранится текст нажатой кнопки
                            textButton.add(txtCheckedButton); // происходит добавление в переменную листа текста нажатой кнопки (понадобится для последующего вывода
                            //спектра )
 
                        } else {
                            txtCheckedButton = toggleButton.getText().toString();
                            DeleteToStrBtn(txtCheckedButton, textButton);
 
                        }
                        LoadToStrBtn(textButton); //метод вывода спектра в текст
                    }
 
                });
            }
 
 
        }
    }
 
 
    private void LoadToStrBtn(List<String> textButton) {
        String all = "";
        for (String tb : textButton) {
            all = all + tb + "+";
 
        }
        resultSpectre.setText(all);
    }   //метод вывода спектра в текст
 
    private void DeleteToStrBtn (String txtCheckedButton, List <String> textButton){
        if (textButton.contains(txtCheckedButton)){
            textButton.remove(txtCheckedButton);
        }
 
 
    }
 
 
    private int Progress100 (){
        int progr=0;
        progr=this.seekBar.getProgress()*100/80;
                return progr;
    } // метод вывода в строку процента прогресс бара вместо 82% - 100%
 
 
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        textView.setText(String.valueOf(Progress100() + "%"));
        String rank=handRankList.get(progress);
 
        int count2=0;
        while (count2<BUTTON_IDS.size()){
 
 
 
            if (rank.equals(buttons.get(count2).getTextOn().toString())){
                buttons.get(count2).setChecked(true);
            }
            count2++;
        }
    }
 
    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
 
    }
 
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
 
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2016, 03:50     Чек большого количества togglebutton при прогрессе seekBar тормозит
Еще ссылки по теме:

Android При загрузке большого количества картинок библиотекой Picasso заканчивается память
Android Как поменять цвет seekBar?
Программная расстановка большого количества кнопок Android
Android SeekBar и Arduino
Android Хранение и использование большого количества изображений

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

Или воспользуйтесь поиском по форуму:
DJ_R_Maestro
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 6
30.06.2016, 03:50  [ТС]     Чек большого количества togglebutton при прогрессе seekBar тормозит #11
немного разобрался, но не совсем понимаю как реализовать:
мне нужно чекнуть все кнопки,которые находятся согласно ранга описанного в handRankList до кнопки, которая соответствует рангу по progress Seekbara. попробовал сделать через цикл, но все равно чекаются кнопки по одной (выходит что если двигается seekbar и меняется его progress происходит перезапись переменной rank и соответственно новое сравнение на 1 кнопку )в моем же случае нужно взять progress и все кнопки которые соответствуют значениям переменной progress меньше текущего сделать чек
пример: progress стал 3. необходимо чекнуть кнопки AA,KK,QQ в соответствии с handRankList
Yandex
Объявления
30.06.2016, 03:50     Чек большого количества togglebutton при прогрессе seekBar тормозит
Ответ Создать тему
Опции темы

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