Autore Topic: Aggiornamento widget da activity  (Letto 1166 volte)

Offline bobo

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    g1
  • Sistema operativo:
    xp
Aggiornamento widget da activity
« il: 12 Luglio 2010, 17:22:19 CEST »
0
Ciao a tutti e complimenti per l'ottima comunity!
Mi chiamo roberto e mi diletto a programmare, senza grandi pretese.......infatti ricorro subito ad un vostro aiuto, sto per divertimenti/curiosità sviluppando un apk che tra le altre cose ha un widgetapp, niente di che, ho però un problemino, mi piacerebbe poter aggiornare il widget quando vengono modificate delle preferenze dal menù della relativa activity, io fin'ora ho scritto il seguente codice:

manifest:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.bobo.acttest"
     android:versionCode="1" android:versionName="1.0">
      <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>
     
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".acttest"
                 android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />              
            </intent-filter>
           
        </activity>
       
                <receiver android:name=".actWidget" android:label="@string/app_name">
                        <intent-filter>
                                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                        </intent-filter>
                        <meta-data
                                android:name="android.appwidget.provider"
                                android:resource="@xml/widget_info" />
                </receiver>
        <activity android:name="MyPreferenceActivity"></activity>      
    </application>
    <uses-sdk android:minSdkVersion="3" />

</manifest>

pezzo dell'activity che fa l'aggiornamento:
Codice (Java): [Seleziona]
   
        AppWidgetManager manager = AppWidgetManager.getInstance(getApplicationContext ());
        ComponentName thisWidget = new ComponentName(getApplicationContext(),actWidget.class);
        RemoteViews views = new RemoteViews(getPackageName(), R.layout.main);
        Intent widgetUpdate = new Intent();
        widgetUpdate.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        int[] appId = AppWidgetManager.getInstance(getBaseContext()).getAppWidgetIds(new ComponentName(getBaseContext(),actWidget.class));
        widgetUpdate.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appId);
         manager.updateAppWidget(thisWidget, views);
        sendBroadcast(widgetUpdate);  

Quello che succede con questo codice è:
- il widget viene aggiornato, però prima mi carica nel layout dello stesso, layout che nulla centrano con il mio widget, ogni tanto mi apre la configurazione di altri widget.....alla fine lo aggiorna.....però facendo una confusione pazzesca, il mio intuito mi dice che in qualche modo tutto sto casino è riconducibie alla mancanza del ID del widget......ora però non capisco proprio come fare a registrarlo e a passarlo all'activity.......credo di aver un po' di confusione in testa :money_mouth: :-P
c'è qualche anima pia che con pazienza può aiutarmi a capire il casino che ho fatto senza ridere troppo ;)?
Grazie
Bobo
« Ultima modifica: 12 Luglio 2010, 17:49:11 CEST da JD, Reason: Usate i bbcode java e xml!! xD »

Offline Splact

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: +1
    • Google+
    • https://www.linkedin.com/profile/view?id=78185089
    • Splact
    • Mostra profilo
    • Splact.com
  • Dispositivo Android:
    One Plus One
  • Play Store ID:
    Dario Carella
  • Sistema operativo:
    Windows 8 64bit
R: Aggiornamento widget da activity
« Risposta #1 il: 03 Novembre 2012, 13:26:00 CET »
0
Ciao, sei riuscito a risolvere poi?

Inviato dal mio Nexus S con Tapatalk 2