• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Android - Widget nie raguje na kliknięcie

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
110 wizyt
pytanie zadane 5 listopada 2016 w Android, Swift, Symbian przez Michał Nieruchalski Nowicjusz (180 p.)

Cześć wszystkim. Mam problem z widgetem. Po kliknięciu na komponent który ma za zadanie wyświetlić komunikat toast (R.id.year) nie dzieje się nic. Natomiast interakcja z komponentem R.id.set jest udana. O co chodzi i co mogę z tym zrobić ?

package com.nieruchalski.reminder;

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.widget.RemoteViews;
import android.app.PendingIntent;
import android.content.Intent;
import android.widget.Toast;

/**
 * Created by Michał on 2016-11-04.
 */
public class ReminderProvider extends AppWidgetProvider {

    public final static String SETYEAR = "SETYEAR";

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        for(int i=0; i<appWidgetIds.length; i++)
        {
            Toast.makeText(context, "onUpdate", Toast.LENGTH_SHORT).show();
            RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
            Intent intent = new Intent(context, setReminder.class);
            PendingIntent pi = PendingIntent.getActivity(context, 0, intent, 0);
            view.setOnClickPendingIntent(R.id.set, pi);

            Intent yearIntent = new Intent(context, ReminderProvider.class);
            yearIntent.setAction(SETYEAR);
            PendingIntent pendingYear = PendingIntent.getBroadcast(context, 0, intent, 0);
            view.setOnClickPendingIntent(R.id.year, pendingYear);



            appWidgetManager.updateAppWidget(appWidgetIds[i], view);

        }
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        if(intent.getAction().equals(SETYEAR))
        {
            Toast.makeText(context, "Year clicked ! ", Toast.LENGTH_SHORT).show();
        }
    }
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 101 wizyt
pytanie zadane 11 marca 2017 w C i C++ przez L33TT12 Gaduła (3,950 p.)
0 głosów
1 odpowiedź 239 wizyt
pytanie zadane 10 maja 2015 w Inne języki przez Dissio Mądrala (5,830 p.)
0 głosów
1 odpowiedź 86 wizyt
pytanie zadane 14 stycznia 2020 w Java przez smokolisz Mądrala (6,370 p.)

91,315 zapytań

139,985 odpowiedzi

315,297 komentarzy

60,763 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...