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

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

Войти
Регистрация
Восстановить пароль
 
xonski
1 / 1 / 0
Регистрация: 24.07.2013
Сообщений: 35
#1

Как обновить домашний виджет с данными вытащил из JSON файл - Android

29.01.2014, 18:00. Просмотров 614. Ответов 0
Метки нет (Все метки)

есть домашний виджет, который "должен" дисплей тексты и изображения, как только вытащил из файла JSON с моего сервера, но это ничего не показывая.

Мой кода 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
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
public class DisplayHadith extends AppWidgetProvider {
 
    public static String CLOCK_WIDGET_UPDATE = "CLOCK_WIDGET_UPDATE";
 
    
    DefaultHttpClient httpclient;
    HttpPost httppost;
    InputStream inputStream = null;
    String result = null;
    StringBuilder sb;
    JSONArray jsonArray;
    String[] date, quote;
    RemoteViews views;
 
    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
 
        if (CLOCK_WIDGET_UPDATE.equals(intent.getAction())) {
            Toast.makeText(context, "onReceiver()", Toast.LENGTH_LONG).show();
        }
 
        new GetJSON().execute();
    }
 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        final int N = appWidgetIds.length;
 
        Log.i("ExampleWidget",
                "Updating widgets " + Arrays.asList(appWidgetIds));
 
        // Perform this loop procedure for each App Widget that belongs to this
        // provider
        for (int i = 0; i < N; i++) {
            int appWidgetId = appWidgetIds[i];
 
            // Create an Intent to launch MainActivity
            Intent intent = new Intent(context, MainActivity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
                    intent, 0);
 
            // Get the layout for the App Widget and attach an on-click listener
            // to the button
            views = new RemoteViews(context.getPackageName(),
                    R.layout.widgetlayout);
 
            views.setOnClickPendingIntent(R.id.ivCal, pendingIntent);
            views.setOnClickPendingIntent(R.id.tvParkStatus, pendingIntent);
            views.setOnClickPendingIntent(R.id.tvToday, pendingIntent);
 
            views.setTextViewText(R.id.tvParkStatus,
                    "Alternate Parking is Suspended");
 
            // Tell the AppWidgetManager to perform an update on the current app
            // widget
            appWidgetManager.updateAppWidget(appWidgetId, views);
        }
    }
 
    public static void updateAppWidget(Context context,
            AppWidgetManager appWidgetManager, int appWidgetId) {
        RemoteViews updateViews = new RemoteViews(context.getPackageName(),
                R.layout.widgetlayout);
        appWidgetManager.updateAppWidget(appWidgetId, updateViews);
    }
 
    public class GetJSON extends AsyncTask<Void, Void, Void> {
        @Override
        protected Void doInBackground(Void... params) { // Running in background
            try {
                httpclient = new DefaultHttpClient(new BasicHttpParams());
                HttpPost httppost = new HttpPost(
                        "http://bri.ge/api/getList.aspx?count=20");
                // Depends on your web service
                httppost.setHeader("Content-type", "application/json");
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
 
                inputStream = entity.getContent();
                // json is UTF-8 by default
                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(inputStream, "UTF-8"), 8);
                sb = new StringBuilder();
 
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                result = sb.toString();
 
            } catch (Exception e) {
                Log.i("TEST", e.toString());
                // Oops
            } finally {
                try {
                    if (inputStream != null)
                        inputStream.close();
                } catch (Exception squish) {
                }
            }
            return null;
        }
 
        @Override
        protected void onPreExecute() { // Activity is on progress
        }
 
        @Override
        protected void onPostExecute(Void v) {
            try {
                jsonArray = new JSONArray(result);
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject jsonObj = (JSONObject) jsonArray.get(i);
                    date[i] = jsonObj.getString("statID");
                    quote[i] = jsonObj.getString("journal");
 
                }
                views.setTextViewText(R.id.tvToday, date[0]);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 18:00     Как обновить домашний виджет с данными вытащил из JSON файл
Посмотрите здесь:

Android Как сделать виджет активной сим карты?
Как обновить приложение в play.google.com? Android
Android Как обновить TextView с AsyncTask?
Как обновить значение в ячейке, используя условие? Android
Как обновить viewpager или listfragment? Android
Android Как передать значения edit из активности, в виджет?
Как распарсить такой JSON Android
Как заставить виджет выводить информацию из файла по времени? Android
Как правильно распарсить Json? Android
SQLiteDatabase как обновить таблицы? Android
Как добавить динамически в ToolBar виджет SearchView в нужных фрагментах Android
Как обновить БД пользователей приложения Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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