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

Обновление виджета при нажатии на него - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Динамическое создание объекта http://www.cyberforum.ru/android-dev/thread609456.html
Всем привет! Заранее извиняюсь за глупый вопрос. Подскажите, пожалуйста, кто знает, как можно динамически создать кнопку в Android? Я пытаюсь, но у меня она не показывается. Вот процедура создания: public void onClick(View v) { Button tt = new Button(this); tt.setWidth(300); tt.setHeight(50); tt.setLeft(10); tt.setTop(30);
Программирование Android Создание мессенджеров Мне выпало задание написать мессенджер под Андройд, с чего вообще надо начать? Что учить? (язык программирование Java) Какие советы можете дать? http://www.cyberforum.ru/android-dev/thread609360.html
Обучение Java Программирование Android
Хочу до 1 июля выучить этот язык, чтобы к 10 июля сдать проект по мессенджеру на андройда, что можете посоветовать?
main.xml Программирование Android
Выдает ошибки - на строчках, где выдает ошибки указал три ! - в чем проблема? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" !!! android:padding="@dimen/standart_border"> <EditText
Программирование Android библиотека OpenSSL http://www.cyberforum.ru/android-dev/thread608507.html
У меня есть проект, написанный на Си. Мне его надо перенести на андроид. Я использую метод standalone toolchain. При компиляции возникают ошибики. Поскольку раньше я никогда не занималась переносом чего-то на другую платформу, каждую новую ошибку приходится усердно гуглить. Хочется работать быстрее, но не получается из-за отсутствия опыта. Подскажите как мне можно справиться с этой проблемой....
Программирование Android НУ НИКАК НЕ ОТЛАДИТЬ ООООЧень хочу попробовать что-нибудь сотворить на андроиде. а тут прямо сами небеса против меня. Эмулятор - Образ установленный на виртуальную машину не видит сеть... вообще отсутствует значёк зелёненький два экранчика в правом верхнем углу... Попробовал отлаживать на своём SE live with walkman ... ЕГО ВООБЩЕ НУ НИКАК НЕ ВИДНО при выполнении команды adb devices ... гугл юсб драйверс на него... подробнее

Показать сообщение отдельно
blood73
Сообщений: n/a

Обновление виджета при нажатии на него - Программирование Android

19.06.2012, 20:52. Просмотров 1042. Ответов 0
Метки (Все метки)

Добрый вечер. Пытаюсь сделать свой виджет. Суть: выводит картинку с одного интернет-ресурса. Вывод осуществил, но проблема с обновлением при нажатии на него. Пытался уже по-разному - безуспешно. Далее код, здесь обновление пытался осуществить через broadcast, но что-то ничего...

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
126
package com.lieryan.urlimagewidget;
 
import com.lieryan.urlimagewidget.R;
 
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
 
public class URLImageAppWidgetProvider extends AppWidgetProvider {
 
    public static String TAG = "Widget";
    //
    public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
    //
    public static class Size_1_1 extends URLImageAppWidgetProvider {}
    public static class Size_1_2 extends URLImageAppWidgetProvider {}
    public static class Size_2_2 extends URLImageAppWidgetProvider {}
    public static class Size_4_2 extends URLImageAppWidgetProvider {}
    public static class Size_4_3 extends URLImageAppWidgetProvider {}
 
    
    @Override
    public void onReceive(Context context, Intent intent) {
 
         final String action = intent.getAction();
         if (ACTION_WIDGET_RECEIVER.equals(action)) {
            
                        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
                         ComponentName thisAppWidget = new ComponentName(context.getPackageName(), URLImageAppWidgetProvider.class.getName());
                         int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisAppWidget);
                         this.onUpdate(context, appWidgetManager, appWidgetIds);
                         
                        
                       
         } 
         super.onReceive(context, intent);
   }
    
    
 
    
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        
        
        SharedPreferences urls = context.getSharedPreferences("urls.conf", Context.MODE_PRIVATE);
        for (int id : appWidgetIds) {
            String url = urls.getString("url_" + id, "");
            update(context, appWidgetManager, id, url);
            
            //
            //Создаем новый RemoteViews
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
            
          //Подготавливаем Intent для Broadcast
            Intent active = new Intent(context, URLImageAppWidgetProvider.class);
            active.setAction(ACTION_WIDGET_RECEIVER);
            active.putExtra("msg", "Запущен!");
            
          //создаем наше событие
            PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
            
          //регистрируем наше событие
            remoteViews.setOnClickPendingIntent(R.id.img, actionPendingIntent); 
            
 
            appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
        }   
 
    }
    
 
 
    
    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        super.onDeleted(context, appWidgetIds);
        
        SharedPreferences urls = context.getSharedPreferences("urls.conf", Context.MODE_PRIVATE);
        SharedPreferences.Editor urls_editor = urls.edit();
        for (int id : appWidgetIds) {
            urls_editor.remove("url_" + id);
        }
        
        urls_editor.commit();
        
    }
   
  
    public static void update(final Context context, final AppWidgetManager appWidgetManager, final int id, final String url) {
        new Thread() {
            public void run() {
                Bitmap img = getBitmapFromUrl(url);
                if (img != null) {
                    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
                    views.setImageViewBitmap(R.id.img, img);
                    appWidgetManager.updateAppWidget(id, views);    
                }
            }
        }.start();
        
                
    }
    
    private static Bitmap getBitmapFromUrl(final String url) {
        try {
            return BitmapFactory.decodeStream(((java.io.InputStream)new java.net.URL(url).getContent()));
        } catch (Exception e) {
            return null;
        }
        
    }
}
Что я сделал не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru