appwidget problemchen beim updaten

D

dakdroid

Neues Mitglied
18
Hallo, mein erster Beitrag!

Möchte bei meinem appwidget die remoteviews updaten, bekomme es aber nicht gebacken...

Die Intents funktionieren, ich sehe die "Toasts". name1 wird auch geändert.
Leider werden die "views" nicht upgedatet,d.h. es wird immer nur als erstes initialisierte name1 angeziegt, was nun ?
(muss dazu sagen, dass das mein erstes Android Programm ist, vorher nur C++)

getNamesAndNumbersSortTheseAndSetLayout(context) ändert nur name1;
Code:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
			
        // Perform this loop procedure for each App Widget that belongs to this provider
        for (int appWidgetId : appWidgetIds){
           
            super.onUpdate(context, appWidgetManager, appWidgetIds);
            //Funktionen zum ändern der Namen
            getNumberOfContacts(context);
            getNamesAndNumbersSortTheseAndSetLayout(context);
            RemoteViews views=new RemoteViews(context.getPackageName(), R.layout.main);
            views.setTextViewText(R.id.person1name, name1);
            Intent clickintent1=new Intent("dak.android.homecontacts.CLICK1");
            PendingIntent pendingIntentClick1=PendingIntent.getBroadcast(context, 0, clickintent1, 0);
            PendingIntent ;
            appWidgetManager.updateAppWidget(appWidgetId, views); 

            }
}


Code:
public void onReceive(Context context, Intent intent){
            super.onReceive(context, intent);
            
            RemoteViews views=new RemoteViews(context.getPackageName(), R.layout.main);


            if(intent.getAction().equals("dak.android.homecontacts.CLICK6")){
            	getNumberOfContacts(context);
                getNamesAndNumbersSortTheseAndSetLayout(context);
                Toast.makeText(context, name1, Toast.LENGTH_SHORT).show();
            	views.setTextViewText(R.id.person1name, name1);
                }
}
 
Zuletzt bearbeitet:
Code:
AppWidgetManager manager = AppWidgetManager.getInstance(context);
        manager.updateAppWidget(widgetId, view);
Du musst das Widget noch updaten.
 
Habs editiert:
Das ist beim kopieren wohl nicht mitgekommen.
Ist unter "onUpdate" mit drinnen. Updated so aber nicht.
Oder muss das auch noch in onReceive rein ?

Der komplette Code ist etwas lang. Wie genau name1 geändert wird erspare ich euch.
name1 hat hier einen neuen Wert welchen ich nicht im widget updaten kann :/
 
Zuletzt bearbeitet:
Ja das muss in onReceive. Immerhin änderst du da ja den View!
 
Edit: so funktionierts in onReceive:

if(intent.getAction().equals("dak.android.homecontacts.CLICK6")){

RemoteViews views=new RemoteViews(context.getPackageName(), R.layout.main);
getNumberOfContacts(context);
getNamesAndNumbersSortTheseAndSetLayout(context);
views.setTextViewText(R.id.person2name, name2);
views.setTextViewText(R.id.person3name, name3);
ComponentName cn = new ComponentName(context, homeContacts.class);
AppWidgetManager.getInstance(context).updateAppWidget(cn, views);
 
Zuletzt bearbeitet:

Ähnliche Themen

J
  • Juleru
Antworten
8
Aufrufe
497
Juleru
J
S
  • Sempervivum
Antworten
2
Aufrufe
607
Sempervivum
S
B
Antworten
2
Aufrufe
1.396
deek
D
Zurück
Oben Unten