按下按钮时更新窗口小部件中的TextView

时间:2016-02-15 20:43:49

标签: java android android-widget

我正在创建一个带有简单输入的简单小部件(使用另一个Activity来获取值)和一个应显示此输入的文本视图。

但我对如何在窗口小部件中更新文本视图感到有些困惑。

目前我有我的OnUpdate:

public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
    theContext = context;
    for(int i=0; i<appWidgetIds.length; i++){

        int currentWidgetId = appWidgetIds[i];

        Intent intent = new Intent(context, inputActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);
        views.setOnClickPendingIntent(R.id.button, pendingIntent);


        views.setTextViewText(R.id.textView, textToShow);
        appWidgetManager.updateAppWidget(currentWidgetId, views);

        Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show();
    }
}

这会在按下按钮时调用我的外部main_activity,但是当提交外部Activity时,更新Widget中的文本视图以显示此文本的最佳方法是什么?

任何帮助将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:0)

使用broadCast可以传递params 外部活动sendbroadcast;

//externalActivity
Intent intent = new Intent();
intent.putExtra(...);
this.sendBroadCast(intent)
在Main_activity中

注册接收者,希望帮助你。