如何设置Widget按钮可见性?

时间:2013-07-20 18:36:09

标签: android button widget set onupdate

首先,我很抱歉我的英语不好。如何设置RemoteViews .setViewVisibility?我想点击它时隐藏小部件按钮。 这是我的代码。谢谢你的帮助。

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {

    final int N = appWidgetIds.length;
    for (int i = 0; i < N; i++){

        int appId = appWidgetIds[i];
      widget = new RemoteViews(context.getPackageName(), R.layout.widget_wyglad);
      Intent Tv = new Intent(context, client_widget.class);
      Tv.setAction(AKCJA);
      Tv.putExtra("test", AKCJA);
      PendingIntent ptv = PendingIntent.getBroadcast(context, 0, Tv, 0);
      widget.setOnClickPendingIntent(R.id.bt_wid_tv, ptv);
      appWidgetManager.updateAppWidget(appId, widget);
    }

  super.onUpdate(context, appWidgetManager, appWidgetIds);
}

@Override
public void onReceive(Context context, Intent intent) {

    Bundle extras = intent.getExtras();
    if (extras != null){

        widget.setViewVisibility(R.id.bt_wid_tv, View.GONE);

    }
    else {Log.d("ERR", "EXTRAS ELSE");}

    super.onReceive(context, intent);   

}

}

3 个答案:

答案 0 :(得分:2)

你已经做了一切关于隐藏视图的事情。只需在代码中包含它 -

在你的onReceive方法 -

if (intent.getAction().equals(AKCJA)) {
widget.setViewVisibility(R.id.bt_wid_tv, View.GONE);
}

答案 1 :(得分:-1)

您是否尝试过使用INVISIBLE代替GONE? Gone将删除视图,就好像它从未出现过一样。隐形会保持视图在布局中的位置,但会使其不可见。

rv.setViewVisibility(R.id.bt_wid_tv, View. INVISIBLE);

答案 2 :(得分:-2)

是的,它终于奏效了, 我改变了什么:

int appId = appWidgetIds[i]; 

更改为:

appId = appWidgetIds[i];

接下来我添加静态int appId:

public class client_widget extends AppWidgetProvider {

static int appId;

最后添加这个新的AppWidgetManager和更新行:

public void onReceive(Context context, Intent intent) {

AppWidgetManager newAppWidgetManager = AppWidgetManager.getInstance(context);

        if (intent.getAction().equals(AKCJA)) {
            AppWidgetManager nowy = AppWidgetManager.getInstance(context);

            widget.setViewVisibility(R.id.bt_wid_tv, View.GONE);

            newAppWidgetManager.updateAppWidget(appId, widget);

谢谢@Naddy