Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
vitalu
3 / 3 / 1
Регистрация: 25.06.2013
Сообщений: 52
#1

Обработка сообщений в виджетах

19.12.2016, 18:39. Просмотров 137. Ответов 0
Метки нет (Все метки)

Здравствуйте. Подскажите пожалуйста как изменить надпись в TextView по нажатию на кнопку(все происходит в виджете).
Считать текст получается, а вот установить новый нет, почему? и как это сделать?

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
public class NewAppWidget extends AppWidgetProvider {
 
    private static final String TAG = "myLogs";
    TextView tv = null;
 
    public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
 
    static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                                int appWidgetId) {
        Log.v(TAG,"updateAppWidget");
        CharSequence widgetText = context.getString(R.string.appwidget_text);
        // Construct the RemoteViews object
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
        views.setTextViewText(R.id.appwidget_text, widgetText);
 
        // Instruct the widget manager to update the widget
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }
 
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        Log.v(TAG,"onUpdate");
       // There may be multiple widgets active, so update all of them
       /* for (int appWidgetId : appWidgetIds) {
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }*/
        //Создаем новый RemoteViews
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
 
        //Подготавливаем Intent для Broadcast
        Intent active = new Intent(context, NewAppWidget.class);
        active.setAction(ACTION_WIDGET_RECEIVER);
        active.putExtra("msg", "Hello Habrahabr");
 
        //создаем наше событие
        PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
 
        //регистрируем наше событие
        remoteViews.setOnClickPendingIntent(R.id.button, actionPendingIntent);
 
        //обновляем виджет
        appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);        
    }
 
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.v(TAG,"onReceive");
        //Ловим наш Broadcast, проверяем и выводим сообщение
        final String action = intent.getAction();
        if (ACTION_WIDGET_RECEIVER.equals(action)) {
            String msg = "null";
            try {
                msg = intent.getStringExtra("msg");
            } catch (NullPointerException e) {
                Log.e("Error", "msg = null");
            }
            LayoutInflater inflater =
                    (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View view = inflater.inflate(R.layout.new_app_widget, null);
 
            tv = (TextView) view.findViewById(R.id.appwidget_text);
            if(tv != null) {
                Log.v(TAG, tv.getText().toString());
                tv.setText("Hello Widget");
            }
            Toast.makeText(context, "Hello Widget", Toast.LENGTH_SHORT).show();
        }
        super.onReceive(context, intent);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2016, 18:39
Ответы с готовыми решениями:

Отправка сообщений в twitter
Хотел узнать, кто-нибудь уже реализовывал такую возможность в своих проектах? Я...

Подмена широковещательных сообщений
Дошел в своем развитии до отправки своих сообщений. И задумася - если я отсылаю...

Добавление сообщений в чат
Есть чат. Новые соощения в него добавляются так: кто-то на сервере добавил...

Стек сообщений GCM
Есть новостное приложение, которое получает через GCM id новой новости. Если на...

Отправка и прием сообщений
Здравствуйте! Мне нужно написать приложение, которое позволяло бы общаться его...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2016, 18:39

обработка сообщений
1)как обработать событие WM_MOUSEMOVE на кнопке? 2)для регистрируемого класса...

Обработка сообщений
Подскажите, как можно обработать сообщения самого Аксесс (конкретно мне нужны...

Обработка сообщений
Можно-ли в проекте WindowsForms обрабатывать сообщения windows или это только...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru