Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动活动时使android小部件不可见_Android_Widget_Hide_Invisible - Fatal编程技术网

启动活动时使android小部件不可见

启动活动时使android小部件不可见,android,widget,hide,invisible,Android,Widget,Hide,Invisible,我有一个小部件,当我点击它的时候,我会用透明的背景开始新的活动,我想隐藏这个小部件,这样只有活动才会出现在主屏幕上,或者找到一种方法将活动窗口放在小部件的顶部,但我不能使用intent.getSourceBounds方法,因为我没有使用API级别7或更高的方法下面的代码示例 如果已使用以下代码创建远程视图 RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); views.setViewVi

我有一个小部件,当我点击它的时候,我会用透明的背景开始新的活动,我想隐藏这个小部件,这样只有活动才会出现在主屏幕上,或者找到一种方法将活动窗口放在小部件的顶部,但我不能使用intent.getSourceBounds方法,因为我没有使用API级别7或更高的方法下面的代码示例

如果已使用以下代码创建远程视图

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setViewVisibility(R.id.widget_counter, View.INVISIBLE);
使用以下代码设置整个小部件的可见性

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setViewVisibility(R.id.widget_counter, View.INVISIBLE);
我找到了解决办法

     public class homeWidget extends AppWidgetProvider {
public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
 @Override
    public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )
    {
        RemoteViews remoteViews;
        ComponentName watchWidget;

        Intent active = new Intent(context, homeWidget.class);
        active.setAction(ACTION_WIDGET_RECEIVER);
        PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);


        remoteViews = new RemoteViews( context.getPackageName(), R.layout.widget );
        watchWidget = new ComponentName( context, homeWidget.class );

        remoteViews.setOnClickPendingIntent(R.id.buttonWidget1, actionPendingIntent);



        appWidgetManager.updateAppWidget( watchWidget, remoteViews );
    }
 @Override
 public void onEnabled(Context context){
     AppWidgetManager mgr = AppWidgetManager.getInstance(context); 
     RemoteViews remoteViews;
        ComponentName watchWidget;

        Intent active = new Intent(context, homeWidget.class);
        active.setAction(ACTION_WIDGET_RECEIVER);
        PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);


        remoteViews = new RemoteViews( context.getPackageName(), R.layout.widget );
        watchWidget = new ComponentName( context, homeWidget.class );

        remoteViews.setOnClickPendingIntent(R.id.buttonWidget1, actionPendingIntent);

        mgr.updateAppWidget(watchWidget,remoteViews);

 }
 @Override
 public void onReceive(Context context, Intent intent) {
     AppWidgetManager mgr = AppWidgetManager.getInstance(context); 
     if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
         Log.i("proverka", "uleva");
         Intent intent1 = new Intent(context,widget_activity.class);
         PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent1, 0);
         RemoteViews remoteViews;
         remoteViews = new RemoteViews( context.getPackageName(), R.layout.widget );

         ComponentName watchWidget;
         watchWidget = new ComponentName( context, homeWidget.class );

         remoteViews.setViewVisibility(R.id.LinearLayout01, View.GONE);
         try {
            pendingIntent.send();
        } catch (CanceledException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



         mgr.updateAppWidget(watchWidget,remoteViews);
         }
         super.onReceive(context, intent);
 }

 }

将该行放在何处,因为我有oneEnabled和onUpdate方法,我正在使用RemoteView调用activitu.setOnClickPendingEventr.id.buttonWidget1,PendingEvent;如果我在添加小部件时将其放入这些方法中,它是不可见的…但我需要在单击它时使其不可见,而不是在我将添加它时