2012-02-27 10 views
2

私は主なアクティビティで宣言され編集されたString変数を持っています。Android Widgetに変数を表示

私はそれをウィジェットで表示したいのですが、どうしたらよいかわかりません。

私が持っているウィジェットファイルで:

remoteViews.setTextViewText(R.id.widgetAmount, String.valueOf(number)) 

が、数変数が別のクラスで宣言されています。

答えて

1

Broadcastは、を使用して送信してください。これには、Appウィジェットに表示する値が含まれています。 Intentを作成し、値を追加します:あなたはこの値にアクセスすることができますAppWidgetProviderクラスのonReceiveで今

Intent intent = new Intent(context, YourAppWidgetProvider.class); 
intent.putExtra("extra_value", value); 
sendBroadcast(intent); 

を:

String value = intent.getStringExtra("extra_value"); 

は、この情報がお役に立てば幸いです。

+0

ありがとうございました。これまでのところ私は持っています 'public void updateWidget(int value){ \t Intent intent = new Intent(this、AppWidget.class); \t intent.putExtra( "value"、value); \t sendBroadcast(インテント); } ' は私のメインで、' String value = intent.getStringExtra( "extra_value"); ' はappWidgetクラスです。ただし、意図はAppWidgetで認識されません。私が紛失していることは明らかですか?それは単に日食で解決することはできません意図を思い付く。 –

+0

@ user1235720、AppWidgetはAppWidgetProviderを継承しますか?あなたは放送を送った後にonReceiveメソッドが呼び出されますか? – Egor

+0

ありがとうございました。この段階で、私は非常に近いです。 AppWidgetクラスが正しい値を受け取っているため、ウィジェットを表示するためにウィジェットを更新できません。 appWidgetでは、私は 'int value = intent.getIntExtra(" Value "、0);を持っています。 \t \t \t RemoteViews remoteViews =新しいRemoteViews(ctxt.getPackageName()、R.layout.widget); \t \t \t remoteViews.setTextViewText(R.id.widgetAmount、String.valueOf(value)); ' –