点击时更改小部件可见性
我的小部件包含两个相对的布局。 我已经使这两个布局可点击。 以下是布局的ID:
android:id="@+id/upper_layout"
android:id="@+id/bottom_layout"
现在,我需要的是,如果用户点击upper_layout,bottom_layout应该是不可见的。
这里是我到目前为止所尝试的,但它不起作用。 你能检查我做错了什么吗? 或者,也许建议一些其他方法来实现这一点。
代码:
public class BobsWidget extends AppWidgetProvider {
public static String ACTION_WIDGET_RECEIVER = "Clicked";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.main);
Intent active = new Intent(context, BobsWidget.class);
active.setAction(ACTION_WIDGET_RECEIVER);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context,
0, active, 0);
remoteViews.setOnClickPendingIntent(R.id.upper_layout,
actionPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
// check, if our Action was called
if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.main);
remoteViews.setViewVisibility(R.id.bottom_layout, View.INVISIBLE);
}
super.onReceive(context, intent);
}
}
您可以在Anndroid 3.0或更多版本中使用几种内置小工具功能。请检查此链接
我想你忘了更新小部件。 你有没有尝试过这样的事情?
remoteViews.setViewVisibility(R.id.bottom_layout, View.INVISIBLE);
final ComponentName provider = new ComponentName(context, this.getClass());
appWidgetManager.updateAppWidget(provider, views);
链接地址: http://www.djcxy.com/p/10505.html