Problem med en Widget

Diskussion i 'Frågor, support och diskussion' startad av RobertW, 28 maj 2010.

  1. RobertW

    RobertW Baby Droid Medlem

    Blev medlem:
    1 mar 2010
    Inlägg:
    18
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej

    Skriver lite på mitt första Androidprogram och mycket fungerar bra men jag har problem med att få ut appWidgetID från en Intent som skickas då jag trycker på bilden i min widget. Har provat lite olika varianter men jag får bara 0.

    Kod:
    public class ClickOneActivity extends Activity {
    
    		@Override
    		protected void onCreate(Bundle savedInstanceState) {
    			super.onCreate(savedInstanceState);
    			
    			Log.d("ClickOne", "onCreate");
    			
    			int mAppWidgetId=-1;
    		
    			String msg = "";
    			
    			Intent intent = getIntent();
    			Bundle extras = intent.getExtras();			
    
    	        if (extras != null) {
    	            mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    	        }
    
    			
    			Log.d("ClickOne", "AppID: " + mAppWidgetId);
    
    mAppWidgetId blir alltid 0 :mad:



    Här skapas min pendingintent:

    Kod:
    public class MoonWidget extends AppWidgetProvider {
    
    	public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
    	public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
    
        // log tag
        private static final String TAG = "MoonWidget";	
    	
        private int mappWidgetId;
        
    	@Override
    	public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    		Log.d(TAG, "OnUpdate(1)");
    
    		if (appWidgetIds.length>0)
    			mappWidgetId = appWidgetIds[0];
    		
    		
    		RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
    
    		
    		if (mappWidgetId>0)
    		{
    		
    		Intent configIntent = new Intent(context, ClickOneActivity.class);
    		configIntent.setAction(ACTION_WIDGET_CONFIGURE);
    		configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mappWidgetId);
        		    
    	    Log.d(TAG, "UPDATEIntent! :" + mappWidgetId);
    
    
    		PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
    		remoteViews.setOnClickPendingIntent(R.id.WidgetMoonView01, configPendingIntent);
    
    		}
    	
    ....	
    		

    Lite från Manifestet


    HTML:
    		<activity android:name=".ClickOneActivity">
    			<intent-filter>
    				<action android:name="se.astronet.android.moonwidget.MoonWidget.ACTION_WIDGET_CONFIGURE"/>
    			</intent-filter>
    		</activity>
    
            <activity android:name="MoonWidgetConfig">
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
                </intent-filter>
            </activity>
    Någon som har en idee om vad jag har gjort för fel?


    /Robert
     
  2. kria

    kria Youth Droid Medlem

    Blev medlem:
    31 okt 2009
    Inlägg:
    107
    Mottagna gillanden:
    0

    MINA ENHETER

    Måste du inte skicka in flags i getActivity, typ FLAG_UPDATE_CURRENT.
     
  3. RobertW

    RobertW Baby Droid Medlem

    Blev medlem:
    1 mar 2010
    Inlägg:
    18
    Mottagna gillanden:
    0

    MINA ENHETER

    Ah det var det.

    Tack för hjälpen!!!
     
  4. kria

    kria Youth Droid Medlem

    Blev medlem:
    31 okt 2009
    Inlägg:
    107
    Mottagna gillanden:
    0

    MINA ENHETER

    Några andra saker. Du borde uppdatera alla appWidgetIds, inte bara första. Och om du har flera widgets så kommer PendingIntent att skrivas över hela tiden, det räcker inte med olika extras för att göra intentet unikt.
     
  5. RobertW

    RobertW Baby Droid Medlem

    Blev medlem:
    1 mar 2010
    Inlägg:
    18
    Mottagna gillanden:
    0

    MINA ENHETER

    Hur skall man göra Intentet unikt då? Provade lite och nu får alla widget kopeor den senaste widgetens ID.
     
  6. kria

    kria Youth Droid Medlem

    Blev medlem:
    31 okt 2009
    Inlägg:
    107
    Mottagna gillanden:
    0

    MINA ENHETER

  7. RobertW

    RobertW Baby Droid Medlem

    Blev medlem:
    1 mar 2010
    Inlägg:
    18
    Mottagna gillanden:
    0

    MINA ENHETER

    Tack nu fungerar den delen bra.