如何将文本附加到小部件中的 TextView?

How do I append text to a TextView in a widget?

我正在编写一个仅包含 TextView 的简单 android 小部件。这是我的 AppWidgetProvider 代码:

public class EventsWidgetProvider extends AppWidgetProvider {
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        for (int widgetId : appWidgetIds) {
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.events_widget);

            remoteViews.setTextViewText(R.id.textView, "foo");

            appWidgetManager.updateAppWidget(widgetId, remoteViews);
        }
    }
}

这只是使用 RemoteViews.setTextViewText 将文本视图文本设置为 "foo",并且有效。

但是没有RemoteViews.appendTextViewText。如果我想将 "bar" 附加到文本视图,我该怎么办?

事实证明你真的做不到。虽然这有效:

remoteViews.setCharSequence(R.id.textView, "setText", charSequence);

这会引发错误。

remoteViews.setCharSequence(R.id.textView, "append", charSequence);

错误:android.widget.RemoteViews$ActionException: view: android.widget.TextView can't use method with RemoteViews: append(interface java.lang.CharSequence)

编辑:根据 this answer,您只能使用带有 @RemotableViewMethod 注释的方法。