我有一个小部件和一个 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 对象。)无论如何,我该怎么做?
最佳答案
不,你不能。我建议采用以下方法之一:
- 将文本添加到 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/