Friday, February 22, 2013

[android-developers] Re: Widget on click....

Hi,

Actually I want something like, toggle button type widget. When the user clicks on widget i want to change the widget  
background or layout so that user will know the on/off condition.

On Sat, Feb 23, 2013 at 10:11 AM, Abhilash baddam <abhilash.androiddeveloper@gmail.com> wrote:
Hi
I am trying to change the layout on click of widget(linear layout) but it's not happening, I am not getting  where i am doing mistake, here is the code snippet,
Help me out.

    public class HelloWidget extends AppWidgetProvider {
    public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
    private static final int REQUEST_CODE_ONE = 10;
    private boolean check = false;
    private static Context mContext;
    static int[] widgetId;
    RemoteViews remoteViews;
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        // TODO Auto-generated method stub
        System.out.println("ON UPDATE");
        //mContext = context;
        //widgetId = appWidgetIds;
        remoteViews = new RemoteViews(context.getPackageName(),
                R.layout.testwidget);
        Intent active = new Intent(context, HelloWidget.class);
        active.setAction(ACTION_WIDGET_RECEIVER);
        active.putExtra("widgetids", appWidgetIds);
        PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context,
                REQUEST_CODE_ONE, active, 0);
        remoteViews.setOnClickPendingIntent(R.id.ll, actionPendingIntent);
        appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
         System.out.println("ONRECEIVEEEEEEEEE");
        final String action = intent.getAction();
        System.out.println("ACTION "+action);
        if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
            final int appWidgetId = intent.getExtras().getInt(
                    AppWidgetManager.EXTRA_APPWIDGET_ID,
                    AppWidgetManager.INVALID_APPWIDGET_ID);
            if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
                this.onDeleted(context, new int[] { appWidgetId });
            }
        }else{
            System.out.println("HERE I AM");
            if(!check){
                check = true;
            }else{
                check = false;
            }
            updateWidget(context);
        }
    }
   
    private void updateWidget(Context context){
        System.out.println("INSIDE MY UPDATE WIDGET");
        //RemoteViews views = null;
        System.out.println(" PACK ANEM "+context.getPackageName());
        //System.out.println(" ");
        if(check){
            System.out.println(" Inside if");
            remoteViews = new RemoteViews(context.getPackageName(),
                        R.layout.hellowidget);
        }else{
            System.out.println(" Inside else");
            remoteViews = new RemoteViews(context.getPackageName(),
                        R.layout.testwidget);
        }
        ComponentName localComponentName = new ComponentName(context, HelloWidget.class);
        AppWidgetManager.getInstance(context).updateAppWidget(localComponentName, remoteViews);
        //AppWidgetManager mgr = AppWidgetManager.getInstance(context);
        //mgr.updateAppWidget(widgetId, remoteViews);
    }
}

this is my hellowidget.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@layout/myshape">

    <Button
        android:id="@+id/tv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="@string/app_name"
        android:gravity="center_vertical|center_horizontal"
        />

</LinearLayout>
 
   

--
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups "Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate