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

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

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

Подскажите что я делаю не так. Разработка Виджета - Программирование Android

28.09.2013, 16:33. Просмотров 741. Ответов 1
Метки нет (Все метки)

Не могу понять почему у меня когда нажимаешь на кнопку в виджете ничего не происходит. Уже куча примеров пересмотрел нифига понять не могу, вот код:

Метаданные виджета:
XML
1
2
3
4
5
6
7
<appwidget-provider
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:initialLayout="@layout/widget"
     android:minHeight="40dp"
     android:minWidth="110dp"
     android:updatePeriodMillis="86400000">
</appwidget-provider>

Лейаут виджета:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical">
 
    <Button
        android:id="@+id/widget_button"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:text="Button" />
</RelativeLayout>
Манифест:
XML
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
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.vlad.flashlighwidget"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name="com.vlad.flashlighwidget.FlashlightWidget" 
                  android:label="@string/app_name">
       <intent-filter>
             <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
             <action android:name="com.vlad.flashlighwidget.FlashlightWidget.ACTION_WIDGET_RECEIVER" />
       </intent-filter>
       <meta-data android:name="android.appwidget.provider"
                                   android:resource="@xml/widget_metadata" />
</receiver>
    </application>
 
</manifest>
Ну и код класса, для обработки действий:

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
package com.vlad.flashlighwidget;
 
import com.vlad.flashlighwidget.R;
 
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
 
public class FlashlightWidget extends AppWidgetProvider{
     public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
     
     @Override
     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
          //Создаем новый RemoteViews
          RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
 
          //Подготавливаем Intent для Broadcast
          Intent active = new Intent(context, FlashlightWidget.class);
          active.setAction(ACTION_WIDGET_RECEIVER);
          active.putExtra("msg", "Hello world!");
 
          //создаем наше событие
          PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
 
          //регистрируем наше событие
          remoteViews.setOnClickPendingIntent(R.id.widget_button, actionPendingIntent);
 
          //обновляем виджет
          appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
     }
 
     @Override
     public void onReceive(Context context, Intent intent) {
 
          //Ловим наш 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");
               }
               Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
          } 
          super.onReceive(context, intent);
    }
}
Думаю с лейаутом и метаданными виджета все ок, так как виджет отображается.
В коде все ок, брал с примера, может в манифесте проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2013, 16:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите что я делаю не так. Разработка Виджета (Программирование Android):

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

Как отсортировать List? Подскажите что делаю не так - Программирование Android
class DocItemsListAdapter extends BaseAdapter { public DocItemsListAdapter() { } public int getCount() { int count = 0; ...

Что не так я делаю в адптаре - Программирование Android
доброго, проблема, компелирую запускаю APK программа запускается видно верх название и меню три точки вертикально, потом закрывается с...

Что я делаю не так. Совсем нубский вoпрос. - Программирование Android
Везде в руководствах говорится, что обработчик нажатия кнопки должен переопределять метод onClick. У меня данный код не компилируется. Если...

Что я неправильно делаю при реализации поиска? - Программирование Android
Мучаюсь уже второй день. Подскажите что не так. Задача сделать поиск в справочнике. Все делаю по гайду - прописываю в манифесте, что...

подскажите что не так делаю? - C++
кароче пишу модуль простейший //module #include&lt;stdio.h&gt; #include&lt;conio.h&gt; int i; int function(int a) {

1
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
30.09.2013, 18:54 #2
Попробуйте добавить в файл провайдера (appwidget-provider) строку android:focusable="true"
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2013, 18:54
Привет! Вот еще темы с ответами:

Подскажите - что делаю не так? - PHP
Здравствуйте, подскажите что тут не так? &lt;?php $attributes = Mage::helper('amshopby/attributes')-&gt;getFilterableAttributes(); ?&gt; ...

Подскажите что делаю не так? - MS Access
После изменения записи курсор переходит на первую запись, а не на измененную Form_IN.SetFocus Form_IN.подчиненная_форма_RED.SetFocus...

Подскажите, что делаю не так - C++
Нужно написать прогр позволяющую юзеру с помощью пунктов меню найти сумму, разность и остаток от целочисленного деления двух целых чисел....

Подскажите что я делаю не так? - C++
Дан массив целых чисел. Все его элементы уменьшить на 20 #include &lt;iostream&gt; using namespace std; int f(const int*mas, const int...


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

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

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