2012-02-27 3 views
2

주 활동에서 선언되고 편집 된 String 변수가 있습니다.Android Widget에 변수 표시

위젯에 표시하고 싶지만 어떻게해야 좋을지 궁금합니다.

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

하지만 숫자 변수는 다른 클래스에 선언 : 위젯 파일에서

나는 있습니다.

답변

1

앱 위젯에 표시 할 값이 포함 된 Intent을 사용하여 Broadcast을 보내야합니다. 값을 Intent을 만들고 추가

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

는 이제 AppWidgetProvider 클래스의 onReceive에서이 값에 액세스 할 수 있습니다이 도움이

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

희망을.

+0

도움 주셔서 감사합니다. 지금까지 내가 가지고있다 'public void updateWidget (int value) { \t 인 텐트 인 텐트 = 새로운 인 텐트 (this, AppWidget.class); \t intent.putExtra ("value", value); \t sendBroadcast (의도); }' 은 내 메인에 있고'String value = intent.getStringExtra ("extra_value");' 은 appWidget 클래스에 있습니다. 그러나 의도는 AppWidget에서 인식되지 않습니다. 내가 누락 된 명백한 것이 있습니까? 그것은 단지 일식으로 해결 될 수없는 의도를 보여줍니다. –

+0

@ user1235720, AppWidget가 AppWidgetProvider를 확장합니까? 방송을 보낸 후 수신 방법이 호출 되나요? – Egor

+0

에고 감사합니다. 이 단계에서 나는 아주 가깝다. AppWidget 클래스가 올바른 값을 받고 있습니다. 위젯을 업데이트 할 수 없습니다. appWidget에서 나는'int value = intent.getIntExtra ("Value", 0); \t \t \t RemoteViews remoteViews = new RemoteViews (ctxt.getPackageName(), R.layout.widget); \t \t \t remoteViews.setTextViewText (R.id.widgetAmount, String.valueOf (value)); ' –