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

Progress Bar и мультипоточность - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Смена цвета полосы над приложением http://www.cyberforum.ru/android-dev/thread1673067.html
Здравствуйте. Подскажите, пожалуйста, как сменить цвет полосы над приложением, где показывается зарядка, время, связь и др. (См. рисунок). И как правильно этот элемент вообще называется?
Программирование Android Своеобразное приложение по типу клиент-сервер Доброго времени суток. Каким образом можно организовать приложение, которое предназначено, к примеру, для отправки запроса к диспетчеру такси и заказа авто, и что для этого необходимо использовать? Хранение заявок, я думаю, должно быть организовано в базе MySQL. Приложение наподобие https://habrahabr.ru/post/269135/, т.е. есть запросы, ответы и прочее. Правда не знаю, каким образом и... http://www.cyberforum.ru/android-dev/thread1673030.html
OnTouchListener Программирование Android
Здравствуйте! Этот код работает как надо на Android 5.0+, но на 4.4 и ниже по какой-то причине не работает. final Button xy = new Button(this); xy.setLayoutParams(dd_wrap_content_fill); xy.setText("\n\n\n\nListening...\n\n\n\n"); xy.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View p1, MotionEvent p2) { //x = (int) p2.getX();
Программирование Android Проложение пути в GoogleMaps
Здравствуйте. В приложение используются карты гугл. При загрузки карты показываются несколько маркеров (рисунок 1). При нажатии вручную на какой-либо маркер автоматически появляется небольшое меню с возможностью проложить путь до этого маркера (рисунок 2, выделено красной рамкой). У меня справа есть иконки, при их нажатии пока просто перемещается к определенному маркеру и показывается его...
Программирование Android Как определить правильную ориентацию фотографии? http://www.cyberforum.ru/android-dev/thread1672694.html
На одном устройстве правильная ориентация фото получается при её повороте (Camera.Parameters::setRotation(int rotation) на 90 градусов, на другом на 270 градусов (при одинаковой ориентации самих устройств конечно). Как-то можно программно выяснить на сколько нужно повернуть фото?
Программирование Android TargetSdkVersion в build.gradle compileSdkVersion - это версия при помощи которой я компилирую свое приложение, а targetSdkVersion - это версия, максимальная версия, которая должна быть на устройстве, чтобы на нем пошло мое приложение верно? То есть мое приложение идет гарантированно на всех версиях от minSdkVersion до targetSdkVersion правильно? А если допустим у меня targetSdkVersion ниже чем compileSdkVersion и я запускаю... подробнее

Показать сообщение отдельно
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 397
02.03.2016, 17:25  [ТС]
CoolMind, как создавать динамические таблицы я знаю. На данный момент мне достаточно только прокрутки, но в будущем я хочу добавить еще фильтр на подобии того, что используется в Excel, но это все будет потом. Сейчас мне надо сделать так, чтоб вся генерация таблицы происходила в отдельном потоке, а на экране в это время отображался только крутящийся бар. Но проблема в том, насколько я понимаю, что в андроид нельзя производить манипуляции с UI элементами, не в UI потоке(главном потоке).

В интернете есть много уроков о том как работает AsyncTask, но все они объясняют только как что то скачать с интернета и чтоб во время скачивания экран не вис, а крутился какой то бар. Здесь как бы понятно, мы качаем данные с интернета и UI элементы не трогаем, бар себе крутится и все нормально. У меня же другая ситуация, я ничего не скачиваю, но у меня нужно сгенерировать очень много UI элемент, где то приблизительно 900 штук, но как это сделать чтоб не задевать главный поток ?

Я уже даже немного переписал код, теперь у меня в doInBackground идет выборка данных из базы в ArrayList, а в onPostExecute я передаю данные из ArrayList в конструктор класса new TableMainLayout(context, product, shop, price) который потом с этими данными генерит таблицу:

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
class DoWork extends AsyncTask<Void, Void, Void>{
 
    Context context;
 
    private ArrayList<String> product = new ArrayList<>();
    private ArrayList<String> shop = new ArrayList<>();
    private ArrayList<String> price = new ArrayList<>();
 
    public DoWork(Context con){
        this.context = con;
    }
 
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
            dialog = new ProgressDialog(ScheduleActivity2.this);
            dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            dialog.setMessage("Loading…");
            dialog.setIndeterminate(true);
            dialog.setCancelable(false);
            dialog.show();
    }
 
    @Override
    protected Void doInBackground(Void... params) {
       
            for(int i = 1; i <= 23; i++){
                product.add(dataBase.getData(i, "product_table", "product_name"));
            }
            for(int i = 1; i <= 35; i++){
                shop.add(dataBase.getData(i, "shop_table", "shop_name"));
            }
            for(int i = 1; i <= 805; i++){
                price.add(dataBase.getData(i, "price_table", "price"));
            }
 
        return null;
    }
 
    @Override
    protected void onPostExecute(Void result) {
 
        setContentView(new TableMainLayout(context, product, shop, price));
 
        dialog.dismiss();
        super.onPostExecute(result);
    }
}
теперь когда программа начинает запускать doInBackground, бар на экране крутится, но когда программа переходит в onPostExecute там где я вызываю класс new TableMainLayout, бар виснет и не крутится секунд 4 и потом на экране появляется уже сгенерированая таблица. Опять же, бар виснет из за того, что в главный UI потом вмешивается мой класс. Какие могут быть решения этой проблемы ?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru