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

Handler при пересоздании активити - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Создание игр под Android http://www.cyberforum.ru/android-dev/thread1777277.html
Добрый день! Я новичок в этом деле и хотел задать некоторые возможно глупые вопросы. Как происходит создание игр под Android? Что дает использование движков типа Cocos2d-x, LibGDX? Как создается графика игры, используется сторонний софт, или все есть в составе вышеперечисленных движков? Что такое физический движок? Что такое графический движок? Что такое игровой движок? Входит ли в...
Android Ошибка Could not find class 'android.os.PersistableBundle' В общем, такая беда.. Я не так давно начал кодить для Андроида, но до сих пор все было хорошо. Запускал приложение всегда не через эмулятор, а на своем телефоне (LG G4 Android 6.0, 5.7"), Оно и сейчас отлично на нем работает, но теперь я решил проверить это дело на других аппаратах. под руку попал планшет 7" c Андроидом 4.4.2 - Запускается приложение хорошо, но при переходе в другую активность... http://www.cyberforum.ru/android-dev/thread1777276.html
Android Загрузка картинок Picasso из дискового кэша, когда нет интернета
Подскажите как можно при помощи Picasso реализовать загрузку картинок в фон активити, когда нет интернета? public class MainActivity extends AppCompatActivity { Button btnOk; RelativeLayout loginLayout; Context cxt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);...
Android Одновременный скролл нескольких ListView
Здравствуйте! Меня интересует вопрос по Android Studio, можно ли как-нибудь организовать одновременный скролл нескольких элементов на одном activity? В данном случае ListView:) Пробовал прописать обычным способом, но приложение выдает ошибку при запуске...
Android Как найти угол при нажатие на экран в android studio? http://www.cyberforum.ru/android-dev/thread1776977.html
Конечно можно найти синус или косинус, но можно получить угол в радианах сразу?
Android TimeOut addOnScrollListener Добрый ночи, ребята помогите с одним вопросом. Как после первой прокрутки сделать TimeOut на 3 сек. //Вот сюда sView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) подробнее

Показать сообщение отдельно
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,235
09.07.2016, 14:04  [ТС]     Handler при пересоздании активити
И еще такой вопрос смотри у меня приложение делает запрос на Opeweathermap и парсит JSON, загружает картинку в фон. И когда я начинаю сильно вертеть экран(делаю частые повороты в процессе загрузки изображения), то приложение падает с
07-09 13:52:59.008 13353-13703/com.uifragmentsexample.user.myuifragments W/System.err: org.json.JSONException: No value for 3h
07-09 13:52:59.008 13353-13703/com.uifragmentsexample.user.myuifragments W/System.err: at org.json.JSONObject.get(JSONObject.java:354)
07-09 13:52:59.008 13353-13703/com.uifragmentsexample.user.myuifragments W/System.err: at org.json.JSONObject.getString(JSONObject.java:510)
07-09 13:52:59.008 13353-13703/com.uifragmentsexample.user.myuifragments W/System.err: at com.uifragmentsexample.user.myuifragments.OpenWeather.jsonHelperGetString(OpenWeather.java:223)
07-09 13:52:59.008 13353-13703/com.uifragmentsexample.user.myuifragments W/System.err: at com.uifragmentsexample.user.myuifragments.OpenWeather.ParseJSONForecast(OpenWeather.java:116)
07-09 13:52:59.009 13353-13703/com.uifragmentsexample.user.myuifragments W/System.err: at com.uifragmentsexample.user.myuifragments.MainActivity$4$1.run(MainActivity.java:337)
07-09 13:52:59.009 13353-13703/com.uifragmentsexample.user.myuifragments W/System.err: at java.lang.Thread.run(Thread.java:838)
вот такой ошибкой. Как можно исправить эту проблему? Есть какая нибудь защита от этого?

Добавлено через 5 минут
Java
1
2
3
4
5
6
7
8
9
private String jsonHelperGetString(JSONObject obj, String k) {
        String v = null;
        if (obj != null) {
            try {
                v = obj.getString(k);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
Вот метод парсинга строки

Добавлено через 1 минуту
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
String ParseJSONForecast(String json) {
        String jsonResult = "";
        try {
            JSONObject JsonObject = new JSONObject(json);
            JSONObject city = jsonHelperGetJSONObject(JsonObject, "city");
            if (city != null) {
 
                String cod = jsonHelperGetString(JsonObject, "cod");
                Log.d("Func", cod);
                if (cod != null) {
                    if (cod.equals("200")) {
 
 
                        jsonResult += jsonHelperGetString(city, "name") + "\n";
                        jsonResult += jsonHelperGetString(city, "country") + "\n";
                        JSONObject coord = jsonHelperGetJSONObject(city, "coord");
                        if (coord != null) {
                            String lon = jsonHelperGetString(coord, "lon");
                            String lat = jsonHelperGetString(coord, "lat");
                            jsonResult += "lon: " + lon + "\n";
                            jsonResult += "lat: " + lat + "\n";
 
                        }
                        jsonResult += "\n";
                        Log.d("Func", jsonResult);
 
                        JSONArray list = jsonHelperGetJSONArray(JsonObject, "list");
 
                        if (list != null) {
                            Log.d("Func", "Here" + list.length());
                            for (int i = 0; i < list.length(); i++) {
                                JSONObject thisWeather = list.getJSONObject(i);
                                JSONObject main = jsonHelperGetJSONObject(thisWeather, "main");
 
                                if (main != null) {
                                    jsonResult += "temp: " + jsonHelperGetString(main, "temp") + "\n";
                                    jsonResult += "pressure: " + jsonHelperGetString(main, "pressure") + "\n";
                                    jsonResult += "humidity: " + jsonHelperGetString(main, "humidity") + "\n";
                                    jsonResult += "temp_min: " + jsonHelperGetString(main, "temp_min") + "\n";
                                    jsonResult += "temp_max: " + jsonHelperGetString(main, "temp_max") + "\n";
                                    jsonResult += "sea_level: " + jsonHelperGetString(main, "sea_level") + "\n";
                                    jsonResult += "grnd_level: " + jsonHelperGetString(main, "grnd_level") + "\n";
                                    jsonResult += "temp_kf: " + jsonHelperGetString(main, "temp_kf") + "\n";
                                    jsonResult += "\n";
 
                                }
                                JSONArray weather = jsonHelperGetJSONArray(thisWeather, "weather");
 
                                if (weather != null) {
                                    Log.d("Func", "Here" + "weather");
                                    for (int j = 0; j < weather.length(); j++) {
                                        JSONObject thisWeather1 = weather.getJSONObject(j);
                                        jsonResult += "weather " + ":\n";
                                        jsonResult += "id: " + jsonHelperGetString(thisWeather1, "id") + "\n";
 
                                        jsonResult += "main: " + jsonHelperGetString(thisWeather1, "main") + "\n";
                                        jsonResult += "description: " + jsonHelperGetString(thisWeather1, "description") + "\n";
                                        jsonResult += "\n";
                                    }
                                }
 
                                JSONObject clouds = jsonHelperGetJSONObject(thisWeather, "clouds");
                                String all = jsonHelperGetString(clouds, "all");
                                jsonResult += "clouds: " + all + "\n";
                                Log.d("Func", all);
                                JSONObject wind = jsonHelperGetJSONObject(thisWeather, "wind");
                                String speed = jsonHelperGetString(wind, "speed");
                                jsonResult += "speed: " + speed + "\n";
                                Log.d("Func", speed);
                                String deg = jsonHelperGetString(wind, "deg");
                                jsonResult += "deg:" + deg + "\n";
                                Log.d("Func", deg);
                                JSONObject rain = jsonHelperGetJSONObject(thisWeather, "rain");
                                String h = "3h:" + jsonHelperGetString(rain, "3h");
                                jsonResult += h + "\n";
                                JSONObject sys = jsonHelperGetJSONObject(thisWeather, "sys");
                                String pod = jsonHelperGetString(sys, "pod");
                                jsonResult += "pod:" + pod + "\n";
                                Log.d("Func", pod);
                                String dt_txt = jsonHelperGetString(thisWeather, "dt_txt");
                                Log.d("Func", dt_txt);
                                jsonResult += "dt_txt:" + dt_txt + "\n";
                            }
                        }
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        Log.d("Func", jsonResult);
        return jsonResult;
    }
Добавлено через 28 секунд
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
 private JSONObject jsonHelperGetJSONObject(JSONObject obj, String k) {
        JSONObject o = null;
        if (obj != null) {
            try {
                o = obj.getJSONObject(k);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        return o;
    }
 
    private JSONArray jsonHelperGetJSONArray(JSONObject obj, String k) {
        JSONArray a = null;
        if (obj != null) {
            try {
                a = obj.getJSONArray(k);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        return a;
    }
}
Добавлено через 50 секунд
Как можно исправить этот парсинг, чтобы предотвратить JSONException?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru