我如何使用 RemoteViews getText().toString() 一个 TextView?

How Do I getText().toString() a TextView Using RemoteViews?

我是第一次开发小部件,与构建应用程序相比,remoteviews 有点令人困惑。

我明白这部分...

RemoteViews views = new Remoteviews(context.getPackageName(), R.layout.my_widget_layout);
views.setTextViewText(R.id.myTV, "Hello World");

接下来对我来说有点复杂。我想让小部件上的按钮传递 TextView 文本并将其显示在 toast 上。

这是我开始的...

Intent myIntent = new Intent(context, myReceiver.class);
PendingIntent myPendingIntent = PendingIntent.getBroadcast(context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.myButton, myPendingIntent);

我的Class(这是我需要帮助的地方!)

public static class myReceiver extends BroadcastReceiver{

Override
public void onReceive(Context context, Intent intent){
Toast.makeText(context, (HELP! I need to getText().toString() from the R.id.myTV), Toast.LENGTH_SHORT).show();
}
}

谢谢!非常感谢!

您可以通过 putStringExtra 方法将要显示的文本添加到意图中,然后像这样提取额外的字符串:

    @Override
    public void onReceive(Context context, Intent intent) {
        AppWidgetManager mgr = AppWidgetManager.getInstance(context);
        if (intent.getAction().equals(check-your-desired-action-here)) {
            String textThatYouWantToDisplay = intent.getStringExtra("name-of-the-desired-item");
            Toast.makeText(context,textThatYouWantToDisplay , Toast.LENGTH_SHORT).show();
        }
        super.onReceive(context, intent);
    }

了解更多信息:

this 来自 google

的示例小部件应用程序

Build an app widget android document

意图 getStringExtra method