2012-01-10 12 views
1

Androidのウィジェットを開発して、テキストウィジェットのアイコンをクリックする意図を変更しました。これを行うために、私はアクションを設定し、メソッドOnReceiveを試しました。これはコードです:
onReceiveメソッドのアイコンを変更 - ウィジェットAndroid

@Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals(ACTION_WIDGET_NOTIF)) { 
      Bundle extras = intent.getExtras(); 
      int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID); 
      RemoteViews controles = new RemoteViews(context.getPackageName(), 
        R.layout.widgetcuatroxuno); 
      controles.setImageViewResource(R.id.btt, 
        R.drawable.ic_launcher_new); 
      AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, controles); 
     } else { 
      super.onReceive(context, intent); 
     } 

    } 

私が知っている私はAppWidgetManagerウィジェットコントロールを更新する必要があるが、それは失敗しました。どのように私の目的を果たすことができますか?私の英語には申し訳ありません。いろいろとありがとうございました。

+0


は、私は解決策が見つかりました: @Override \tます。public void onReceive(コンテキストコンテキスト、テントの意図){ \t \t RemoteViewsを制御=新しいRemoteViews(context.getPackageName()、 \t \t \t \t R.layout.widget); \t \t IF(intent.getAction()に等しい(ACTION_WIDGET_CHANGE)){ \t \t \t control.setImageViewResource(R.id.bttn、 \t \t \t \t \t R.drawable.ic_launcher_new)。 \t \t}他{ \t \t \t super.onReceive(コンテキスト、インテント)。 \t \t \t \tコンポーネント名cn = new ComponentName(context、Widget.class); \t \t AppWidgetManager.getInstance(context).updateAppWidget(cn、control); \t} –

答えて

3
RemoteViews control = new RemoteViews(context.getPackageName(), 
        R.layout.widget); 
      control.setTextViewText(R.id.textview1, "ExampleText"); 

      ComponentName cn = new ComponentName(context, 
        ButtonWidget.class); 
      AppWidgetManager.getInstance(context).updateAppWidget(cn, 
        control); 

これはOnReceive()で動作します。ありがとうございます!誰かが同じ問題を抱えている場合

+0

このソリューションは美しく機能します。 –

関連する問題