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

Как OkHTTP ответ вывести в TextView? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Тестирование эмулятора http://www.cyberforum.ru/android-dev/thread1708868.html
Приветствую, Собрал сборку эмуляторов на базе AOSP для основных бранчей IceCream Sandwich, JellyBean, Kitkat, Marshmallow. Доступна по протоколу VNC из браузера. Очень похоже на manymo, но они такое ощущение, что они проект не развивают. В виду необходимости передачи по сети, даже с учетом кодирования tight, все довольно тормозит. Но тестировать программы вполне можно. Буду крайне...
Программирование Android Как заставить Google TTS правильно ставить ударения? Добрый день! Использую Google TTS в приложении для Android. https://play.google.com/store/apps/details?id=com.google.android.tts&hl=ru Русский язык есть, но он неправильно ставит ударения в некоторых словах. Пробовал расставлять апострофы типа: "Замо'к от за'мка", не помогает. Есть ли решение? http://www.cyberforum.ru/android-dev/thread1708678.html
Программирование Android Цвет шрифта изменяется не только у нажатого дочернего элемента но и у др. доч. элементов в соседних группах
Уважаемые программисты! Подскажите, пожалуйста, как исправить мой код так, чтобы при нажатии на дочерний элемент компонента ExpandableListView при изменении цвета шрифта, его цвет не изменялся в соседних элементах. Просто мой код, казалось бы срабатывает как нужно и цвет шрифта меняется у выделенного дочернего элемента, но почему при этом цвет шрифта изменяется у некоторых дочерних элементов...
Программирование Android Как запустить в приложении китайские карты Baidu?
короч взял из примера(на сайте производителя:)): MainActivity.java: import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import com.baidu.mapapi.map.BaiduMapOptions; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.SupportMapFragment;
Программирование Android Совет по реализации http://www.cyberforum.ru/android-dev/thread1708409.html
Здравствуйте, столкнулся с проблемой проектирования проекта и хотел бы посоветоваться как лучше реализовать. Имеется база с записями, которые необходимо отображать в list view. Тут как бы намекает использовать cursor adapter , но каждая из этих записей может находится в различных состояниях, которые в рантайме меняются и требуют соответствующего отображения в list view , для какой то записи может...
Программирование Android ActionBar Search Добрый ночи. Я вывел поиск данных в новое Activity. Так как сделать, к примеру если ты перешел на новый activity чтобы вместо заголовка выводился поисковое поле. public class SearchFragment extends AppCompatActivity { @Override подробнее

Показать сообщение отдельно
Deno95
9 / 9 / 3
Регистрация: 16.12.2013
Сообщений: 108

Как OkHTTP ответ вывести в TextView? - Программирование Android

11.04.2016, 15:58. Просмотров 371. Ответов 6
Метки (Все метки)

Проблема с потоками, так как не давно начал работать с android возникли непонимания.

Для оправки Get запроса использую библиотеку OkHTTP.

Создал класс Get.java:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import okhttp3.Callback;
import okhttp3.OkHttpClient;
 
public class Get {
    private final OkHttpClient client = new OkHttpClient();
 
    public void run(String url, Callback callback) {
 
        okhttp3.Request request = new okhttp3.Request.Builder()
                .url(url)
                .build();
 
        client.newCall(request).enqueue(callback);
    }
}
В MainActivity.java вызываю запрос и пытаюсь вывести:

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
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
 
import java.io.IOException;
 
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
 
public class MainActivity extends AppCompatActivity {
    TextView  test123;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Get test = new Get();
        test123 = (TextView) findViewById(R.id.test);
 
        test.run("https://geocode-maps.yandex.ru/1.x/?geocode=E52.091002%S23.721111",
                new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
 
                    }
 
                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        @Override
                        public void run() {
 
                        }
                        test123.setText(response.body().string());
                    }
                });
    }
}
Log error:
FATAL EXCEPTION: OkHttp Dispatcher
Process: com.d_code.myapplication, PID: 5292
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6669)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:972)
at android.view.View.requestLayout(View.java:16757)
at android.view.View.requestLayout(View.java:16757)
at android.view.View.requestLayout(View.java:16757)
at android.view.View.requestLayout(View.java:16757)
at android.view.View.requestLayout(View.java:16757)
at android.view.View.requestLayout(View.java:16757)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:369)
at android.view.View.requestLayout(View.java:16757)
at android.widget.TextView.checkForRelayout(TextView.java:6781)
at android.widget.TextView.setText(TextView.java:3850)
at android.widget.TextView.setText(TextView.java:3708)
at android.widget.TextView.setText(TextView.java:3683)
at com.d_code.myapplication.MainActivity$1.onResponse(MainActivity.java:33)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:133)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Может кто поможет с решением или кардинально поменяет код что бы он работал?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru