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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
jumper.leto
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 66
#1

Обработка checkbox'ов - Программирование Android

14.05.2012, 01:36. Просмотров 2760. Ответов 12
Метки нет (Все метки)

Здравствуйте, каким образом можно обработать не сразу же все чекбоксы а постепенно:
допустим выбрано 3 чекбокса, и вначале 1 потом 2 потом 3 а не все сразу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 01:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка checkbox'ов (Программирование Android):

Проверка checkboxов - PHP
Уважаемые господа помогите пожалусто. У меня есть страница, там есть форма, которая заполняется вот этим кодом 1, создавая там динамически...

Обработка события Click, вставка html после генерации и обработка этого кода - jQuery
Подскажите пожалуйста как заставить работать эту часть кода 18 строка $(".image").click(function() { alert (1); ...

Обработка одномерных массивов и Обработка двухмерных массивов. - Visual Basic
Всем привет, У меня большие проблемы... нужно сделать 2 лабораторные работы по информатике, но я ничегошеньки в VB не понимаю... ...

1C 8.x Обработка - 1С
Народ! Впервые пишу обработку по загрузке данных из файла. Подскажите, как брать данные из файла. Вот я выбираю файл &НаКлиенте Процедура...

1C 8.x Обработка ТО - 1С
Где найти обработку торговое оборудование?

Обработка - 1С
Во вкладке " Выбранные поля" в столбце "Наименование" выводит контрагент,договор и контейнерная площадка. К ним я добавил Ответственный....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
14.05.2012, 11:36 #2
Объясните в чем суть проблемы?
Может на каждый CheckBox вам надо повесить свой OnCheckChengedListener?
jumper.leto
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 66
14.05.2012, 17:52  [ТС] #3
Цитата Сообщение от Bes-s Посмотреть сообщение
Объясните в чем суть проблемы?
Может на каждый CheckBox вам надо повесить свой OnCheckChengedListener?
Ну значит, грубо говоря надо загрузить музыку с сайта, музыка выводится в TextView, справо чекбоксы,
допустим я хочу скачать 4 песни, чекаю 4 чекбокса, нажимаю кнопку загрузить, открывается ProgressDialog(progress bar) он отображает загрузку, но так как загружаюся сразу 4 чекбокса, то прогресс диалог "лагает" ну перекрывается другими. то 1 то 2 то 3 то 4 и так по кругу,
надо от этой проблемы избавиться, думал просто вначале обработать 1 чекбокс, (открыть прогресс даилог )потом по закрытию диалога, обрабатывать 2 чекбокс и так далее, ну или лучше бы
сделать понормальному и вывести 1 общия Прогресс диалог.
как сделать не знаю, делаю через AsyncTask
вот код
Javascript
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
private class DownloadVkTask extends AsyncTask<String, Void, Bitmap> {
         
         @Override
            protected void onPreExecute() {
              progressDialog.setMessage("Downloading ...");
              progressDialog.setCancelable(false);
              progressDialog.setMax(100);
              progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
              progressDialog.show();
            }
         @Override
        protected Bitmap doInBackground(String... params) {           
            String url = "";
            if( params.length > 0 ){
                url = params[0];                
            }
           
            InputStream input = null;
            int downloadedSize =0;
            int totalSize;
           try {
               String RootDir = Environment.getExternalStorageDirectory()
                       + File.separator + "vkJericho";
               File RootFile = new File(RootDir);
               RootFile.mkdir();
               // File root = Environment.getExternalStorageDirectory();
               URL u = new URL(params[0]);
               HttpURLConnection c = (HttpURLConnection) u.openConnection();
               c.setRequestMethod("GET");
               c.setDoOutput(true);
               c.connect();
               String FileName ="";
               if (params[0] == res1 ) FileName = res11;
               if (params[0] == res2 ) FileName = res22;
               if (params[0] == res3 ) FileName = res33;
               if (params[0] == res4 ) FileName = res44;
               if (params[0] == res5 ) FileName = res55;
               if (params[0] == res6 ) FileName = res66;
               if (params[0] == res7 ) FileName = res77;
               
               FileOutputStream f = new FileOutputStream(new File(RootFile,
                       FileName));
               InputStream in = c.getInputStream();
               byte[] buffer = new byte[1024];
               int len1 = 0;
                totalSize = c.getContentLength();
               while ((len1 = in.read(buffer)) > 0) {                          
                   f.write(buffer, 0, len1);       
                   downloadedSize +=len1;
                   onProgressUpdate(downloadedSize, totalSize);
               }       
               f.close();
                
             } catch (Exception e) {
                 e.printStackTrace();
             }                                        
           return BitmapFactory.decodeStream(input);
        }
        
       
        protected void onProgressUpdate(Integer... values) {
            progressDialog.setProgress((int) ((values[0] / (float) values[1]) * 100));
           // progressDialog.setMessage(res11);
 
        }
        
        @Override
        protected void onPostExecute(Bitmap result) {
            progressDialog.hide();
            showDialog(PROGRESS_DLG_ID2);
        }
     }
вот вызываю по кнопке:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (cb1.isChecked()) {
                    new DownloadVkTask().execute(res1);
                }
                if (cb2.isChecked()) {
                    new DownloadVkTask().execute(res2);
                }
                if (cb3.isChecked()) {
                    new DownloadVkTask().execute(res3);
                }
                if (cb4.isChecked()) {
                    new DownloadVkTask().execute(res4);
                }
                if (cb5.isChecked()) {
                    new DownloadVkTask().execute(res5);
                }
                if (cb6.isChecked()) {
                    new DownloadVkTask().execute(res6);
                }
                if (cb7.isChecked()) {
                    new DownloadVkTask().execute(res7);
                }
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
14.05.2012, 18:32 #4
дык так не создавайте сразу 7 тасков, а передайте ввиде парметров 1 таску.
аля
new DownloadVkTask().execute(res1,res2,res3 и т.д.);
jumper.leto
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 66
14.05.2012, 21:03  [ТС] #5
а каким образом задавать разные имена?
p.s. имена res11,res22,...

Добавлено через 1 час 54 минуты
Ап тему!
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
14.05.2012, 22:40 #6
да вариантов масса, хотябы так
Java
1
2
3
4
5
6
7
8
9
  if( params.length > 0 ){
               for(int i=0; i<params.length; ++i)
               {
                      if (params[i] == res1 ) FileName = res11;
                      else if (params[i] == res2 ) FileName = res22;
                      // и т.д. 
                      //тут ваш код
               }  
            }
jumper.leto
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 66
14.05.2012, 23:08  [ТС] #7
Конечно спасибо за помощь, но не работает почему то, вот к примеру:
Как обрабатываю нажатие:
Javascript
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
public void onclick(View v) {   
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.buttonDownl:
            try{
                int count = 7;
                array = api.getAudiomy(account.user_id, null, count);
                obj1 = array.getJSONObject(0);
                obj2 = array.getJSONObject(1);
                obj3 = array.getJSONObject(2);
                obj4 = array.getJSONObject(3);
                obj5 = array.getJSONObject(4);
                obj6 = array.getJSONObject(5);
                obj7 = array.getJSONObject(6);
               /////////////////////////////////////////////////////////////////
                res1 = obj1.getString("url");
                res11 = obj1.getString("title");
                /////////////////////////////////////////////////////////////////
               /////////////////////////////////////////////////////////////////
                res2 = obj2.getString("url");
                res22 = obj2.getString("title");
                /////////////////////////////////////////////////////////////////
               /////////////////////////////////////////////////////////////////
                res3 = obj3.getString("url");
                res33 = obj3.getString("title");
                /////////////////////////////////////////////////////////////////
               /////////////////////////////////////////////////////////////////
                res4 = obj4.getString("url");
                res44 = obj4.getString("title");
                /////////////////////////////////////////////////////////////////
               /////////////////////////////////////////////////////////////////
                res5 = obj5.getString("url");
                res55 = obj5.getString("title");
                /////////////////////////////////////////////////////////////////
               /////////////////////////////////////////////////////////////////
                res6 = obj6.getString("url");
                res66 = obj6.getString("title");
                /////////////////////////////////////////////////////////////////
               /////////////////////////////////////////////////////////////////
                res7 = obj7.getString("url");
                res77 = obj7.getString("title");
                ///////////////////////////////////////////////////////////////// 
                
              //    
                new DownloadVkTask().execute(res2,res3,res4);
             } catch (Exception e) {
                 e.printStackTrace();
             }
                break;
        case R.id.buttonRefr:
            VkApi();
        break;  
        }
    }
ну и соответственно сам AsyncTask:
Javascript
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
private class DownloadVkTask extends AsyncTask<String, Void, Bitmap> {
         
         @Override
            protected void onPreExecute() {
              progressDialog.setMessage("Downloading ...");
              progressDialog.setCancelable(false);
              progressDialog.setMax(100);
              progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
              progressDialog.show();
            }
         @Override
        protected Bitmap doInBackground(String... params) {           
            String url = "";
            String FileName =null;
            if( params.length > 0 ){
                url = params[0];
                for(int i=0; i<params.length; ++i)
                {
                       if (params[i] == res1 ) FileName = res11;
                       else if (params[i] == res2 ) FileName = res22;
                       else if (params[i] == res3 ) FileName = res33;
                       else if (params[i] == res4 ) FileName = res44;
                       else if (params[i] == res5 ) FileName = res55;
                       else if (params[i] == res6 ) FileName = res66;
                       else if (params[i] == res7 ) FileName = res77;
                       // и т.д. 
                }  
            }
           
            InputStream input = null;
            int downloadedSize =0;
            int totalSize;
           try {
               String RootDir = Environment.getExternalStorageDirectory()
                       + File.separator + "vkJericho";
               File RootFile = new File(RootDir);
               RootFile.mkdir();
               // File root = Environment.getExternalStorageDirectory();
               URL u = new URL(params[0]);
               HttpURLConnection c = (HttpURLConnection) u.openConnection();
               c.setRequestMethod("GET");
               c.setDoOutput(true);
               c.connect();               
               FileOutputStream f = new FileOutputStream(new File(RootFile,
                       FileName));
               InputStream in = c.getInputStream();
               byte[] buffer = new byte[1024];
               int len1 = 0;
                totalSize = c.getContentLength();
               while ((len1 = in.read(buffer)) > 0) {                          
                   f.write(buffer, 0, len1);       
                   downloadedSize +=len1;
                   onProgressUpdate(downloadedSize, totalSize);
               }       
               f.close();
                
             } catch (Exception e) {
                 e.printStackTrace();
             }                                        
           return BitmapFactory.decodeStream(input);
        }
        
       
        protected void onProgressUpdate(Integer... values) {
            progressDialog.setProgress((int) ((values[0] / (float) values[1]) * 100));
           // progressDialog.setMessage(res11);
        }
        
        @Override
        protected void onPostExecute(Bitmap result) {
            progressDialog.hide();
            showDialog(PROGRESS_DLG_ID2);
        }
     }
Закачивается только 1 первый файл.. я хз что такое, поправьте если что не так )
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
14.05.2012, 23:24 #8
епрст, понятное дело что закачивается только первый файл, потому что вы только первый файл и качаете, оО
jumper.leto
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 66
14.05.2012, 23:27  [ТС] #9
а как мне закачать не только 1 файл? извиняюсь за тупость...)
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
14.05.2012, 23:31 #10
Цитата Сообщение от jumper.leto Посмотреть сообщение
а как мне закачать не только 1 файл? извиняюсь за тупость...)
мм, ну допустим подумать, немного над тем что вам предложили, а не просто копипасть код, даже не думая.
jumper.leto
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 66
15.05.2012, 12:17  [ТС] #11
каким образом можно сделать вот так вот к примеру ?
new DownloadVkTask().execute(res1,res2,res3 и т.д.);
только соответственно res1,res2,res3... выбираются из чек боксов.
То есть если выбрано 1 и 3 то посылаем только res1,res3 ?
если делать на подобии
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
int i;
String res[];
    if (cb1.isChecked()) {
                        
                    res[i]=res1; i++;
                }
                if (cb2.isChecked()) {
                    res[i]=res2; i++;
                }
                if (cb3.isChecked()) {
                    res[i]=res3; i++;
                }
new DownloadVkTask().execute(res);
То компилит нормально, но ничего не загружается...

Добавлено через 20 минут
Еще проблема, сделал так:
Javascript
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
public void onclick(View v) {   
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.buttonDownl:
                nmbr=0;
                if (cb1.isChecked()) {
                        
                    res[nmbr]=res1; nmbr++;
                }
                if (cb2.isChecked()) {
                    res[nmbr]=res2; nmbr++;
                }
                if (cb3.isChecked()) {
                    res[nmbr]=res3; nmbr++;
                }
                if (cb4.isChecked()) {
                    res[nmbr]=res4; nmbr++;
                }
                if (cb5.isChecked()) {
                    res[nmbr]=res5; nmbr++;
                }
                if (cb6.isChecked()) {
                    res[nmbr]=res6; nmbr++;
                }
                if (cb7.isChecked()) {
                    res[nmbr]=res7; nmbr++;
                }
              //    
             new DownloadVkTask().execute(res[0]);
            
                break;
        case R.id.buttonRefr:
            VkApi();
        break;  
        }
    }
Javascript
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
public void VkApi () {
         try {
             int count1 = 7;
            array = api.getAudiomy(account.user_id, null, count1);
            obj1 = array.getJSONObject(0);
            obj2 = array.getJSONObject(1);
            obj3 = array.getJSONObject(2);
            obj4 = array.getJSONObject(3);
            obj5 = array.getJSONObject(4);
            obj6 = array.getJSONObject(5);
            obj7 = array.getJSONObject(6);
            /////////////////////////////////////////////////////////////////
            res1 = obj1.getString("url");
            res11 = obj1.getString("title");
            /////////////////////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////
            res2 = obj2.getString("url");
            res22 = obj2.getString("title");
            /////////////////////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////
            res3 = obj3.getString("url");
            res33 = obj3.getString("title");
            /////////////////////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////
            res4 = obj4.getString("url");
            res44 = obj4.getString("title");
            /////////////////////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////
            res5 = obj5.getString("url");
            res55 = obj5.getString("title");
            /////////////////////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////
            res6 = obj6.getString("url");
            res66 = obj6.getString("title");
            /////////////////////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////
            res7 = obj7.getString("url");
            res77 = obj7.getString("title");
            /////////////////////////////////////////////////////////////////       
            song1.setText(res11);
            song2.setText(res22);
            song3.setText(res33);
            song4.setText(res44);
            song5.setText(res55);
            song6.setText(res66);
            song7.setText(res77);
              //Показать сообщение в UI потоке 
          } catch (Exception e) {
              e.printStackTrace();
          }
    }
При нажатии на кнопку Downl выдает ошибку :
вот лог:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
05-15 12:17:18.155: D/AndroidRuntime(16695): Shutting down VM
05-15 12:17:18.165: W/dalvikvm(16695): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-15 12:17:18.165: E/AndroidRuntime(16695): FATAL EXCEPTION: main
05-15 12:17:18.165: E/AndroidRuntime(16695): java.lang.IllegalStateException: Could not execute method of the activity
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.view.View$1.onClick(View.java:2165)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.view.View.performClick(View.java:2506)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.view.View$PerformClick.run(View.java:9112)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.os.Handler.handleCallback(Handler.java:587)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.os.Looper.loop(Looper.java:130)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.app.ActivityThread.main(ActivityThread.java:3835)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at java.lang.reflect.Method.invokeNative(Native Method)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at java.lang.reflect.Method.invoke(Method.java:507)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at dalvik.system.NativeStart.main(Native Method)
05-15 12:17:18.165: E/AndroidRuntime(16695): Caused by: java.lang.reflect.InvocationTargetException
05-15 12:17:18.165: E/AndroidRuntime(16695):    at java.lang.reflect.Method.invokeNative(Native Method)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at java.lang.reflect.Method.invoke(Method.java:507)
05-15 12:17:18.165: E/AndroidRuntime(16695):    at android.view.View$1.onClick(View.java:2160)
05-15 12:17:18.165: E/AndroidRuntime(16695):    ... 11 more
05-15 12:17:18.165: E/AndroidRuntime(16695): Caused by: java.lang.NullPointerException
05-15 12:17:18.165: E/AndroidRuntime(16695):    at app.vk.Jericho.VkJerichoActivity.onclick(VkJerichoActivity.java:239)
05-15 12:17:18.165: E/AndroidRuntime(16695):    ... 14 more
Подскажите что может быть?
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
15.05.2012, 13:20 #12
Цитата Сообщение от jumper.leto Посмотреть сообщение
Подскажите что может быть?
епрст, вы же сами стектрейс привели, там все четко сказано.
Java
1
2
Caused by: java.lang.NullPointerException
05-15 12:17:18.165: E/AndroidRuntime(16695):    at app.vk.Jericho.VkJerichoActivity.onclick(VkJerichoActivity.java:239)
jumper.leto
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 66
15.05.2012, 21:09  [ТС] #13
Как понял надо поставить конструкцию try/catch, сделал
Но теперь проблема остается прежней
каким образом можно сделать вот так вот к примеру ?
new DownloadVkTask().execute(res1,res2,res3 и т.д.);
только соответственно res1,res2,res3... выбираются из чек боксов.
То есть если выбрано 1 и 3 то посылаем только res1,res3 ?
Добавлено через 5 часов 18 минут
Ап тему!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2012, 21:09
Привет! Вот еще темы с ответами:

Обработка - Turbo Pascal
Пусть дана последовательность из n элементов .Уменьшить её, удалив первый из отрицательных и минимальных из положительных (такой элемент...

Обработка 1с 8 - 1С
Собственно проблема-то не в системе, а в мозге :) На форме обработки имеется таблица, поля таблицы описаны в тексте обработки...

Обработка на 7 - 1С
Здравствуйте, написал простенькую обработочку для 8, теперь столкнулся что мне она понадобится и в 7ке. С семерошным языком не знаком т.к....

Обработка - 1С
Здравствуйте. Есть две обработки сделанные на 8.0, помогите переделать их на 8.3. Чтоб не приходилось запускать через толстый клиент.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.05.2012, 21:09
Ответ Создать тему
Опции темы

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