2012-02-24 7 views
7

私のウィジェットは2つの相対レイアウトで構成されています。私は両方のレイアウトをクリック可能にしました。レイアウトの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); 
    } 

} 

答えて

2

あなたは、いくつかの作り付けのウィジェット機能を持っている利用可能Anndroid 3.0以上versions.Checkでこのlink

1

私はあなたがウィジェットを更新するのを忘れたと思います。 あなたはこれを試しましたか?

remoteViews.setViewVisibility(R.id.bottom_layout, View.INVISIBLE); 
final ComponentName provider = new ComponentName(context, this.getClass()); 
appWidgetManager.updateAppWidget(provider, views);