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

