0
我有小部件,當我點擊它時,我開始使用透明背景的新活動,並且我想隱藏該小部件,以便只有活動存在於主屏幕上或找到一種方法來放置在widget的頂部的活動窗口,但我不能使用intent.getSourceBounds方法,因爲我沒有使用API 7級以上使開始活動時不可見的Android小部件
我有小部件,當我點擊它時,我開始使用透明背景的新活動,並且我想隱藏該小部件,以便只有活動存在於主屏幕上或找到一種方法來放置在widget的頂部的活動窗口,但我不能使用intent.getSourceBounds方法,因爲我沒有使用API 7級以上使開始活動時不可見的Android小部件
我找到了解決辦法
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);
}
}
使用下面的代碼示例嘗試
,如果你已經創建了遠程視圖以下代碼
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
s整個部件的可見性等使用下面的代碼
views.setViewVisibility(R.id.widget_counter, View.INVISIBLE);
如果把該行的原因我已經onEnabled和的onUpdate方法和我打電話與remoteViews.setOnClickPendingIntent的activitu( R.id.buttonWidget1,pendingIntent); – user742362
如果我把這些方法放在裏面,當我添加小部件它是不可見的......但我需要讓隱身,當我點擊它不是當我將添加 – user742362