Как получить текст TextView виджета из действия? - PullRequest
2 голосов
/ 03 марта 2012

У меня есть виджет и действие. Когда я запускаю действие, мне нужно прочитать текст из TextView виджета и показать его в 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 как ноль (я думаю, что не могу сослаться на объект представления из другого представления.) В любом случае, как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 08 марта 2012

Нет, вы не можете.Я предлагаю один из следующих способов:

  1. Добавление текста в Bundle и получение его в вашей деятельности.

в вашем виджете:

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);

в вашей деятельности:

Intent intent=getIntent();
Bundle b= intent.getExtras();
String text= b.getString("Text", "");
Использование SharedPreferences для сохранения текста и загрузки его в упражнении.

В вашей ситуации я рекомендую способ 1.

0 голосов
/ 03 марта 2012

вы можете получить фактическую строку с помощью метода .toString () в TextView.

String frase; 

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