Thanks for your help Jeff, its finally starting to make a lot more
sense now!

-James

On Apr 29, 6:43 pm, Jeff Sharkey <[email protected]> wrote:
> Right, that wouldn't have an effect because your inflated layout is a
> completely different copy from the one inflated by the home screen.
>
> Also, I noticed that your using "putExtra" in your PendingIntents.  Be
> sure to use the FLAG_CANCEL_CURRENT flag when calling getActivity() to
> make sure your extras are updated correctly.  And be aware that you
> can only have one set of extras for any given PendingIntent
> action+data+category+component pair.
>
> If you're trying to change the background of a button, you could use
> this slightly-hacky approach: set the button background to a leveled
> drawable, and then use setDrawableParameters() to change the level and
> show the desired background.
>
> You'd probably want to keep the number of layers to a minimum to keep it 
> speedy.
>
> j
>
> On Wed, Apr 29, 2009 at 3:40 AM, [email protected]
>
>
>
> <[email protected]> wrote:
>
> > Thanks for your reply Jeff,
>
> > Turns out what I really needed to do here was learn how Intent based
> > programming on Android works and how to actually implement it! What I
> > was missing here was actually declaring the activity in the Android
> > XML (I assumed that activities only had to be declared if they were
> > actually going to display something).
>
> > Still though I would be really nice if I could get direct access to
> > Button Widgets via LayerInflator so that I can directly manipulate the
> > background of the button, unfortunately the following seems to have no
> > effect:
>
> >                LayoutInflater inflater = (LayoutInflater) context
> >                                
> > .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
> >                View view = inflater.inflate(R.layout.widget_layout, null);
>
> >                Button button = (Button) 
> > view.findViewById(R.id.ToggleButton);
> >                button.setBackgroundResource(R.drawable.airplaneoff);
>
> >                RemoteViews views = new RemoteViews(context.getPackageName(),
> >                                R.layout.widget_layout);
>
> >                Intent defineIntent = new Intent(context, 
> > ToggleActivity.class);
> >                defineIntent.putExtra("toggle", toggle);
> >                PendingIntent pendingIntent = 
> > PendingIntent.getActivity(context, 0,
> >                                defineIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
>
> >                views.setOnClickPendingIntent(R.id.ToggleButton, 
> > pendingIntent);
>
> >                // Tell the widget manager
> >                appWidgetManager.updateAppWidget(appWidgetId, views);
>
> > No big deal tho since I can always use an ImageView and call
> > RemoteViews.setImageViewBitmap(id)
>
> > On Apr 29, 4:25 am, Jeff Sharkey <[email protected]> wrote:
> >> Hmm, not sure exactly why it isn't working.  Because you can't know
> >> the state of the remote AppWidgetHostView holding your widget, you
> >> should package up all operations each time you push an update.  You
> >> said in logcat it looks like it's trying to start the activity, could
> >> you paste the couple of lines surrounding that?
>
> >> Also, if you don't have an <intent-filter> inside the Activity
> >> definition in your manifest, you might need to add the
> >> android:exported="true" flag.
>
> >> j
>
> >> On Tue, Apr 28, 2009 at 5:52 PM, [email protected]
>
> >> <[email protected]> wrote:
>
> >> > As a side note I also tried using LayoutInflator and attaching an
> >> > onClickListener to the imageview manually, but that failed to
> >> > recognise any events. Im guessing here that changes made via a
> >> > layoutinflator will not be picked up by remote views which later use
> >> > that layout?
>
> >> > On Apr 29, 1:19 am, "[email protected]"
> >> > <[email protected]> wrote:
> >> >> I have the following code in a static function in my application
> >> >> widget:
>
> >> >>                 Intent defineIntent = new Intent(context,
> >> >> ToggleIntentActivity.class);
> >> >>                 PendingIntent pendingIntent = PendingIntent
> >> >>                                 .getActivity(context, 0, defineIntent, 
> >> >> 0);
>
> >> >>                 views.setOnClickPendingIntent(R.id.icon, pendingIntent);
>
> >> >>                 // Tell the widget manager
> >> >>                 appWidgetManager.updateAppWidget(appWidgetId, views);
>
> >> >> From the examples it looked as though this was the way to trigger
> >> >> custom activity's based on user clicks on your widgets. However even
> >> >> though Logcat says Starting Activity: Intent {......} my activities on
> >> >> create function never gets called!
>
> >> >> Note my Activity is as follows:
>
> >> >> public class ToggleIntentActivity extends Activity {
> >> >>         @Override
> >> >>         protected void onCreate(Bundle savedInstanceState) {
> >> >>                 super.onCreate(savedInstanceState);
> >> >>                 Log.e(QuickerCutWidgetManager.TAG, "On create");
> >> >>         }
>
> >> >> }
>
> >> >> Any ideas?
>
> >> --
> >> Jeff Sharkey
> >> [email protected]
>
> --
> Jeff Sharkey
> [email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to