Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 29

Вызов Activity на клик по виджету

21.02.2014, 13:08. Показов 1938. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, начитался статей, и написал вот это:
Java
1
2
3
4
5
6
7
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        RemoteViews widgetView = new RemoteViews(context.getPackageName(), R.layout.widget);
        Intent configIntent = new Intent(context, SettingsActivity.class);
        PendingIntent pIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
        widgetView.setOnClickPendingIntent(R.layout.widget, pIntent);
    }
К сожалению, ноль реакции на нажатие. Я пока в этой теме плаваю, так что, наверняка, написал какую-то чушь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2014, 13:08
Ответы с готовыми решениями:

Клик по виджету
Здравствуйте господа форумчане!)помогите пожалуйста новичку!)Мне нужно, чтобы при клике по виджету открывался основной layout...буду очень...

Вызов Activity из самого Activity
Подскажите пожалуйста как мне вызывать в navigationdrawer activity в котором все это находится ?

Вызов fragment из activity
Доброго времени суток ! Есть main где указан navigationDrawler и в файле xml добавлен FrameLayout c id контейнер. Есть fragment1,...

8
 Аватар для Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
21.02.2014, 13:14
Java
1
widgetView.setOnClickPendingIntent(R.layout.widget, pIntent);
Мне кажется, здесь вместо R.layout.widget нужно передавать view id.
1
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 29
21.02.2014, 15:35  [ТС]
Поменял эту строчку на
Java
1
widgetView.setOnClickPendingIntent(R.id.widget, pIntent);
Всё равно не работает.
На всякий случай вот код виджета
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:padding="@dimen/widget_margin"
    android:configure="ru.weathertoday.SettingsActivity" >
 
    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#6600ff00"
        android:gravity="center"
        android:text="@string/pref_city"
        android:textColor="#000"
        android:textSize="18sp" />
 
</LinearLayout>
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
package ru.weathertoday;
 
 
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;
 
 
public class Widget extends AppWidgetProvider {
    @Override
    public void onEnabled(Context context) {
        super.onEnabled(context);
    }
    
    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        super.onDeleted(context, appWidgetIds);
    }
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        RemoteViews widgetView = new RemoteViews(context.getPackageName(), R.layout.widget);
        Intent configIntent = new Intent(context, SettingsActivity.class);
        PendingIntent pIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
        widgetView.setOnClickPendingIntent(R.id.widget, pIntent);
 
 
    }
 
    @Override
    public void onDisabled(Context context) {
        super.onDisabled(context);
    }
}
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
25.02.2014, 10:56
Namide, попробуйте на textview клик обработать или на LinearLayout добавить android:clickable="true", хотя у меня и без него работает, но я на LinearLayout вешаю ImageView и клик вешаю на него - попробуйте и вы.
1
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
26.02.2014, 13:14
И кстати у вас в provider стоит значение: android:focusable="true" ?
1
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 29
26.02.2014, 16:05  [ТС]
dubok79,
Цитата Сообщение от dubok79 Посмотреть сообщение
попробуйте на textview клик обработать или на LinearLayout добавить android:clickable="true", хотя у меня и без него работает, но я на LinearLayout вешаю ImageView и клик вешаю на него - попробуйте и вы.
Попробовал, не помогает.
Цитата Сообщение от dubok79 Посмотреть сообщение
И кстати у вас в provider стоит значение: android:focusable="true" ?
Извините за глупый вопрос, но это где?
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
26.02.2014, 16:15
Цитата Сообщение от Namide Посмотреть сообщение
Извините за глупый вопрос, но это где?
res/xml/<наименование>.xml
ну вот с таким примерно содержанием:
XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="40dp"
    android:minHeight="40dp" 
    android:updatePeriodMillis="3600000"
    android:initialLayout="@layout/widget_layout"
    android:focusable="true" 
    android:configure="ru.alexeydubinin.lineyka.PreferencesActivity"
    android:previewImage="@drawable/widget_preview_image">
</appwidget-provider>
Ну он точно у вас без него никак
0
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 29
26.02.2014, 17:21  [ТС]
dubok79, не было. Добавил строчку, теперь код там такой:
XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/widget"
    android:focusable="true"
     android:minHeight="40dp"
     android:minWidth="40dp"
    android:updatePeriodMillis="2400000">
</appwidget-provider>
И почему-то в логе клик по виджету отображается как
02-26 17:18:36.396: D/FSCommand(556): [AppContactManager] tapWallpaper x = 59, y = 498
Так и должно быть?
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
26.02.2014, 17:24
Цитата Сообщение от Namide Посмотреть сообщение
Так и должно быть?
Не могу сказать. Не обращал внимания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2014, 17:24
Помогаю со студенческими работами здесь

Создание и вызов второго Activity
Добрый день! Немного запутался с ООП в проекте суть в следующем: Имеем главное Activity: public class MainActivity extends...

Асинхронный вызов в первом Activity
Здравствуйте. Подскажите, пожалуйста, как выполнить следующую задачу: При запуске приложения MainActivity должна считать с файла...

Вызов метода из другого Activity
Здраствуйте. Помогите,пожалуйста, разобраться с несколькими вопросами: 1) Правильно ли, что &quot;Настройки&quot; я выделил в отдельный...

Вызов activity повторно android
здравствуйте , начал я писать можно сказать первую ну не маленькую программу для андроид, столкнулся с такой проблемой, допустим у меня...

Вызов метода при прокрутке activity
Как обработать событие когда activity прокрутили в самый низ что бы вызвать какой нибудь метод? Например как новости в ВК при прокрутке...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru