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

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

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

Вызов Activity на клик по виджету - Программирование Android

21.02.2014, 13:08. Просмотров 989. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 13:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызов Activity на клик по виджету (Программирование Android):

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

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

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

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

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

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

8
Netscape
374 / 361 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
21.02.2014, 13:14 #2
Java
1
widgetView.setOnClickPendingIntent(R.layout.widget, pIntent);
Мне кажется, здесь вместо R.layout.widget нужно передавать view id.
1
Namide
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 29
21.02.2014, 15:35  [ТС] #3
Поменял эту строчку на
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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
25.02.2014, 10:56 #4
Namide, попробуйте на textview клик обработать или на LinearLayout добавить android:clickable="true", хотя у меня и без него работает, но я на LinearLayout вешаю ImageView и клик вешаю на него - попробуйте и вы.
1
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
26.02.2014, 13:14 #5
И кстати у вас в provider стоит значение: android:focusable="true" ?
1
Namide
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 29
26.02.2014, 16:05  [ТС] #6
dubok79,
Цитата Сообщение от dubok79 Посмотреть сообщение
попробуйте на textview клик обработать или на LinearLayout добавить android:clickable="true", хотя у меня и без него работает, но я на LinearLayout вешаю ImageView и клик вешаю на него - попробуйте и вы.
Попробовал, не помогает.
Цитата Сообщение от dubok79 Посмотреть сообщение
И кстати у вас в provider стоит значение: android:focusable="true" ?
Извините за глупый вопрос, но это где?
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
26.02.2014, 16:15 #7
Цитата Сообщение от 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
Namide
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 29
26.02.2014, 17:21  [ТС] #8
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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
26.02.2014, 17:24 #9
Цитата Сообщение от Namide Посмотреть сообщение
Так и должно быть?
Не могу сказать. Не обращал внимания.
0
26.02.2014, 17:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2014, 17:24
Привет! Вот еще темы с ответами:

Приложение зависает, если свернуть и развернуть Activity или перейти на другую Activity - Программирование Android
У меня в параллельном потоке происходит куча apply() Решение использовать apply вместо commit было принято из-за скорости. Но...

Изменение layout-элементов одного activity из другого activity - Программирование Android
Здравствуйте! Я хочу изменить размер или цвет текста TextView в одном activity из второго activity, каким образом мне можно это...

Android - Передача данных с одного Activity на другое Activity - Программирование Android
Здравствуйте , возникла необходимость получения числовых (int и float ну или double) данных в одном Activity , а обработка и вывод...

Из одного Activity получить значение другого Activity - Программирование Android
Запускаю активити: public class MainActivity extends Activity { ... ... Intent intent = new Intent(getBaseContext(),...


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

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

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