Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
vitalu
3 / 3 / 1
Регистрация: 25.06.2013
Сообщений: 52
#1

Обработка сообщений в виджетах - Программирование Android

19.12.2016, 18:39. Просмотров 114. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка сообщений в виджетах (Программирование Android):

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

Стек сообщений GCM - Программирование Android
Есть новостное приложение, которое получает через GCM id новой новости. Если на долго выключить телефон или интернет, то в GCM...

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

Добавление сообщений в чат - Программирование Android
Есть чат. Новые соощения в него добавляются так: кто-то на сервере добавил сообщение, с помощью GCM на андроид приходит уведомление о новом...

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

Обработка сообщений - C++/CLI WinForms
Можно-ли в проекте WindowsForms обрабатывать сообщения windows или это только можно делать в Win32?

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

Обработка сообщений - C#
У меня есть запущенный цикл в основном потоке приложения, но выполняется он довольно продолжительное время. Есть ли какой-нибудь метод,...

обработка сообщений - C++ WinAPI
1)как обработать событие WM_MOUSEMOVE на кнопке? 2)для регистрируемого класса окна указывается функция обработки сообщения, а можно ли ее...

Обработка сообщений - MS Access
Подскажите, как можно обработать сообщения самого Аксесс (конкретно мне нужны изменение размеров и перетаскивание). Я работаю в 97....

USART и обработка сообщений - AVR
контроллер AT90CAN128, 16МГц в прерывании по приёму по 485 интерфейсу, я записываю всё в буфер, далее если я в очередной раз получил...


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

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

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