4

私はアンドロイドウィジェットを開発しています。ウィジェットには、テキスト フィールドと 2 つのボタンがあります。ボタン 1 を押すと、テキスト フィールドに「1」などの特定のテキストが表示され、ボタン 2 をクリックすると、テキスト フィールドに「2」のように表示されます。

onUpdate() は次のようになります。

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

    remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_main);

    Intent intent = new Intent(context, CalculatorReceiver.class);
    intent.setAction(ACTION_WIDGET_RECEIVER);
    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);

    PendingIntent actionPendingIntent =  PendingIntent.getBroadcast(context, 0, intent, 0);
    remoteViews.setOnClickPendingIntent(R.id.one, actionPendingIntent);
    appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); }

onReceive() メソッドは次のようになります。

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

    super.onReceive(context, intent);

    if(intent.getAction().equals(ACTION_WIDGET_RECEIVER)){

         Toast.makeText(context, "Hi I'm 1", Toast.LENGTH_LONG).show();

         }}

現在、ウィジェットでは、ボタンが押されたときにトーストを表示することしかできませんが、textView を取得してその値を変更したいと考えています。textView を取得して変更するにはどうすればよいですか?

4

2 に答える 2

1

onReceive() に以下の行を追加してみてください

remoteViews.setTextViewText(R.id.widget_appNameView, "テキスト ビューが更新されました");

ComponentName componentName = new ComponentName(context, WidgetProvider.class); AppWidgetManager.getInstance(context).updateAppWidget(componentName, remoteViews);

于 2015-06-24T05:32:01.723 に答える