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