Aller au contenu

Le bouton de mon widget ne marche pas


Olivier69

Recommended Posts

Bon je m'explique et après je donne le code à rectifier si besoin.

J'écris un widget qui affiche des SMS. Pas de problème, en particulier celui à la position i.

Maintenant pour rendre tout ça interactif, je pose un bouton Next, qui est censé permettre d'afficher le SMS a la position i+1.

en l'occurrence, après avoir vérifié que mon widget affichais bien quelque chose pour la position 0 et la position 1, j'ai remarqué que mon bouton Next ne marche pas.

Quand j'appuie sur le bouton je lance une intention. Sans doute ai-je oublié une permission ou un "extends", mais je ne trouve pas où, quand, comment...

Je précise quand même que je n'ai pas de problème pour le compiler, donc il ne s'agit pas d'une erreur de syntaxe ou d'import...

voici mon code:

public class MySMSwidget extends AppWidgetProvider {
   private int sms_id=0;
   private static final String Next_BUTTON = new String("android.MySMSwidget.action.Next_BUTTON"); 

   public void  onReceive  (Context  context, Intent  intent){
       final String action = intent.getAction();
       if (Next_BUTTON.equals(action))
       {
           sms_id = sms_id+1;
       }
        else {
               super.onReceive(context, intent); 
           } 
   }

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
       Cursor c = context.getContentResolver().query(Uri.parse("content://sms/inbox"), null, null ,null,null);
       String body = null;
       String number = null;
       String date = null;

       c.moveToPosition(sms_id);
          body = c.getString(c.getColumnIndexOrThrow("body")).toString();
          number = c.getString(c.getColumnIndexOrThrow("address")).toString();
          date = c.getString(c.getColumnIndexOrThrow("date")).toString();
       c.close();

       RemoteViews updateViews = new RemoteViews(context.getPackageName(),
               R.layout.widget_layout);

       updateViews.setTextColor(R.id.text, 0xFF000000);
       updateViews.setTextViewText(R.id.text,date+'\n'+number+'\n'+body);
       ComponentName thisWidget = new ComponentName(context, MySMSwidget.class);
       appWidgetManager.updateAppWidget(thisWidget, updateViews);

        Intent Next = new Intent();
        Next.setAction(Next_BUTTON);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, Next, 0);
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
            views.setOnClickPendingIntent(R.id.next, pendingIntent);

    }

}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...