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

Передача данных между потоками - Android

Восстановить пароль Регистрация
Другие темы раздела
Android ВМ Windows на Android http://www.cyberforum.ru/android-dev/thread1796962.html
Существует ли такое в реале, чтоб работало нормально, можно ли самому сделать на других программах (Delphi, Java, visual studio)?
Android Как разместить 2 элемнта с центаром на одной прямой? Я не могу понять, как можно в активности разместить два элемента так, чтобы их центры были расположены на одной прямой... Если, например, разместить изображение с android:layout_alignBottom="@+id/нужный элемент", то получится некрасиво, нужно именно с центрами на одной прямой http://www.cyberforum.ru/android-dev/thread1796952.html
Убрать скролл в ListView Android
Пишу форму для настольной игры. На форме несколько списков ListView, каждый из которых скрывается по кнопке. Всё это находится в ScrollView. Я ожидал, что списки будут видны полностью, высотой будут по размеру контента и прокручиваться вместе со всей страницей от ScrollView, но оказалось, что у списка показывается только 1 элемент, остальное нужно прокручивать скроллом от ListView. И если на...
TableLayout как отловить значение строки по нажатию (для Андроид на java) Android
Я только начинающий, прошу помочь по возможность, уже 2 день ищу информацию так и не понял как реализовать. Необходимо по нажатию на табличной части tableLayout отловить все значения колонок которые находятся в строке по которую нажали. Код такой: 1.ZakazSpisok.java import android.app.Activity; import android.app.DatePickerDialog; import android.app.TimePickerDialog; import...
Android MediaPlayer: как продолжить работу аудио-плеера в фоновом режиме? http://www.cyberforum.ru/android-dev/thread1796905.html
Как продолжить работу ауди плеера в фоновом режиме? Сервис создал, но что туда надо передать? Весь код выполняется в Activity.
Android Android WebSocket Здравствуйте, начинаю разбиратся с WebSocket, использую библиотеку nv WebSocket Client, соединится с сервером получилось, передать и получить сообщение тоже. Но у меня есть несколько Activity в приложении, в которых использую сокет-соединение, как правильно организовать логику не ясно, я так понимаю надо какой-то клас, в котором будет переменная с соединением, и с него тащить connection для... подробнее

Показать сообщение отдельно
JavJun
11 / 9 / 2
Регистрация: 27.08.2015
Сообщений: 222
21.08.2016, 22:43     Передача данных между потоками
Всем доброго времени суток. В общем есть приложение, которое парсит сайт с музыкой, добавляет результат в listView и затем выводит результат на экран. Сам парсинг проходит в одном потоке, а вывод на экран - в основном. Но поскольку выполнение поиска занимает не мало времени, то хотелось бы, что бы как только в listView попадает элемент - он сразу бы и отображался.
Ниже код:
Кликните здесь для просмотра всего текста
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
package ru.startandroid.webparser;
 
import android.os.Bundle;
import android.app.Activity;
import android.os.AsyncTask;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
 
public class MainActivity extends Activity {
 
    public Elements nextPage;
    public ArrayList<String> titleList = new ArrayList<>();
    public ArrayAdapter adapter;
    public ListView lv;
    public EditText eText;
    public Button btn;
    public String userRequest;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        eText = (EditText) findViewById(R.id.editText1);
        btn = (Button) findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                userRequest = eText.getText().toString();
                // определение данных
                lv = (ListView) findViewById(R.id.listView1);
                // запрос к нашему отдельному поток на выборку данных
                new NewThread().execute();
                titleList.clear();
                // Добавляем данные для ListView
                adapter = new ArrayAdapter<>(MainActivity.this, R.layout.list_item, R.id.product_name, titleList);                
            }
        });
 
    }
 
    public class NewThread extends AsyncTask<String, Void, String> {
 
        @Override
        protected String doInBackground(String... arg) {
 
        try {
 
            /*Тут парсинг сайта согластно запросу и поиск значения artName, trackName, trackDur, trackLink*/
 
 
                        titleList.add(artName+" - "+trackName+" : "+trackDur+" "+"\n"+trackLink);
                    }
 
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
 
        @Override
        protected void onPostExecute(String result) {
 
            // после запроса обновляем листвью
            lv.setAdapter(adapter);
        }
    }
}



В андроиде полный новичок. Куча поиска привела только к использованию Handler, но не уверен что подойдет, да и когда пробовал - толком ничего не получилось.
Буду очень благодарен любой помощи.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru