Gaauwe
Gaauwe

Reputation: 281

How to use an button on homescreen widget?

I have an widget, with an button and an imagebutton. I want that if you click the imagebutton, there opens an transparant activity with an edittext. For example we fill in 01 Than when you click the normal button, it will load an webview that shows html file 01.html. Is this possible?

The code i have is:

 package com.kerk.liedboek.widget;

 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetProvider;
 import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
 import android.widget.RemoteViews;
 import android.widget.Toast;

  public class main extends AppWidgetProvider {

      public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
      public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";

      @Override 
      public void onUpdate(Context context, AppWidgetManager 
 appWidgetManager, 
        int[] appWidgetIds) { 
            Intent i = new Intent(context, edit.class); 
            PendingIntent pi = PendingIntent.getBroadcast(context,0, i,0); 
            RemoteViews rv = new RemoteViews(context.getPackageName(), 
 R.layout.main); 
            rv.setOnClickPendingIntent(R.id.button_one, pi); 

            Intent i2 = new Intent(context, webview.class); 
            PendingIntent pi2 = PendingIntent.getBroadcast(context,0, i2,0); 
            RemoteViews rv2 = new RemoteViews(context.getPackageName(), 
 R.layout.main); 
            rv2.setOnClickPendingIntent(R.id.button_two, pi2); 

    }
}

I'm new to android, and i now i'm an newb. But i hope you understand me and you can help me. Gaauwe

Edit:

My logcat is:

07-09 14:19:31.070: ERROR/AndroidRuntime(381): FATAL EXCEPTION: main 07-09 14:19:31.070: ERROR/AndroidRuntime(381): java.lang.RuntimeException: Unable to instantiate receiver com.liedboek.widget.aantekening: java.lang.ClassCastException: com.liedboek.widget.aantekening 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1773) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at android.app.ActivityThread.access$2400(ActivityThread.java:117) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at android.os.Handler.dispatchMessage(Handler.java:99) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at android.os.Looper.loop(Looper.java:123) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at android.app.ActivityThread.main(ActivityThread.java:3683) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at java.lang.reflect.Method.invokeNative(Native Method) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at java.lang.reflect.Method.invoke(Method.java:507) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at dalvik.system.NativeStart.main(Native Method) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): Caused by: java.lang.ClassCastException: com.liedboek.widget.aantekening 07-09 14:19:31.070: ERROR/AndroidRuntime(381): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1764) 07-09 14:19:31.070: ERROR/AndroidRuntime(381): ... 10 more 07-09 14:19:31.101: WARN/ActivityManager(69): Process com.liedboek.widget has crashed too many times: killing!

But my code is another code, but also an button widget:

package com.liedboek.widget;

 import android.app.Activity;
 import android.app.PendingIntent; 
 import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetProvider;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.widget.RemoteViews;

 public class main extends AppWidgetProvider {

public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";

@Override 
public void onUpdate(Context context, AppWidgetManager 
appWidgetManager, 
  int[] appWidgetIds) { 
    // Create an Intent to launch ExampleActivity
    Intent intent = new Intent(context, aantekening.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

    // Get the layout for the App Widget and attach an on-click listener
    // to the button
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
    views.setOnClickPendingIntent(R.id.button_one, pendingIntent);

    // Tell the AppWidgetManager to perform an update on the current app widget
    appWidgetManager.updateAppWidget(appWidgetIds, views); 



  } 
 }

Upvotes: 0

Views: 964

Answers (1)

Cristian
Cristian

Reputation: 200090

Instead of using getBroadcast you may want to use getActivity.

Upvotes: 1

Related Questions