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 -~----------~----~----~----~------~----~------~--~---

