android - 如何从 Activity 获取 Widget 的 TextView 的文本?

标签 android android-widget android-activity textview

我有一个小部件和一个 Activity ,当我启动 Activity 时,我必须从小部件的 TextView 中读取文本并将其显示在 Activity 的 TextWidget 中。

我的相关代码:

 String frase=""; 
 TextView text_frase = (TextView) findViewById(R.id.widget_textview_frase);
 if (text_frase != null){
    frase = (String) text_frase.getText();
 }
 Log.v(LOG_CLASS_NAME, "frase: "+frase);

调试它 - 我将 text_frase 设置为 null(我认为我无法从另一个 View 引用 View 对象。)无论如何,我该怎么做?

最佳答案

不,你不能。我建议采用以下方法之一:

  1. 将文本添加到 Bundle 并在您的 Activity 中提取它。

在你的小部件中:

Intent intent = new Intent(context, YourActivity.class);
Bundle b= new Bundle();
b.putString("Text", yourtext);
intent.putExtras(b);
PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_CANCEL_CURRENT);

在您的 Activity 中:

Intent intent=getIntent();
Bundle b= intent.getExtras();
String text= b.getString("Text", "");
  • 使用 SharedPreferences 保存文本并将其加载到 Activity 中。
  • 根据您的情况,我推荐方法 1。

    关于android - 如何从 Activity 获取 Widget 的 TextView 的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542190/

    相关文章:

    使用 Android Q 拒绝 AndroidAudioConverter 权限

    java - 应用程序在尝试报告错误时出现错误

    java - 如何使用Sceneform、ARCore绘制多边形?

    xamarin.android - 使用 Xamarin Forms 的 Android 小部件?

    Android ListView 小部件有时对点击无响应

    android - 以对话框形式发送电子邮件 Intent

    android - 应用程序被强制停止/终止后,Widget Pending Intent 将不起作用

    Android:注销时清除 Activity 历史记录

    android - 如何工作,当 ListView 在 ScrollView 中时?

    Android SQlite,如何将两个值传递给另一个 Activity ?