2011-06-29 38 views
0

我有小部件,當我點擊它時,我開始使用透明背景的新活動,並且我想隱藏該小部件,以便只有活動存在於主屏幕上或找到一種方法來放置在widget的頂部的活動窗口,但我不能使用intent.getSourceBounds方法,因爲我沒有使用API​​ 7級以上使開始活動時不可見的Android小部件

回答

0

我找到了解決辦法

 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); 
} 

} 
0

使用下面的代碼示例嘗試

,如果你已經創建了遠程視圖以下代碼

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 

s整個部件的可見性等使用下面的代碼

views.setViewVisibility(R.id.widget_counter, View.INVISIBLE); 
+0

如果把該行的原因我已經onEnabled和的onUpdate方法和我打電話與remoteViews.setOnClickPendingIntent的activitu( R.id.buttonWidget1,pendingIntent); – user742362

+0

如果我把這些方法放在裏面,當我添加小部件它是不可見的......但我需要讓隱身,當我點擊它不是當我將添加 – user742362