TextView.setText() не работает на умных часах Sony

Я пытаюсь изменить текст в текстовом представлении в расширении управления Sony SmartWatch одним нажатием кнопки. Однако метод TextView.setText() не работает.

Вот мой расширенный класс ControlExtension

class SampleControlSmartWatch2 extends ControlExtension {

    private static TextView textView = null;

    SampleControlSmartWatch2(final String hostAppPackageName, final Context context,
                Handler handler) {
    //...

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View layout = inflater.inflate(R.layout.sample_control_2, null);

        textView = (TextView) layout.findViewById(R.id.textToBeChanged);
    }

    //...

   public void onObjectClick(ControlObjectClickEvent event) {
        Log.i(TAG, "Before : " + textView.getText().toString());  // It shows "original"

        textView.setText("changed");

        Log.i(TAG, "After : " + textView.getText().toString());   // It shows "changed"

        textView.invalidate();           // These two methods are added after read
        textView.requestLayout();        // through several posts but it doesn't work
   }   
}

Зарегистрированный текст textView в LogCat отображается, как и ожидалось, но текст в эмуляторе не обновляется. Кто-нибудь знает, как это решить? Спасибо.


person Biboo Chung    schedule 18.04.2014    source источник


Ответы (1)


Для меня этот код работает:

sendText(R.id.textToBeChanged, "changed");
person Flat Eric    schedule 20.04.2014
comment
Да, это работает. Вы знаете, как изменить текст в хост-приложении? - person Biboo Chung; 20.04.2014
comment
Вы имеете в виду запуск обновления элемента управления в приложении на смартфоне из приложения SmartWatch? Я решил это, отправив намерение, на которое было зарегистрировано приложение. - person Flat Eric; 20.04.2014
comment
Я пытаюсь вызвать нажатие кнопки в приложении для умных часов, а затем изменить текст в приложении на телефоне. - person Biboo Chung; 20.04.2014
comment
Затем вы должны отправить намерение в расширении SmartWatch и добавить BroadcastReceiver в приложение «Телефон». Если вам нужна помощь с этим, откройте новый вопрос, потому что это слишком много кода, чтобы писать в комментариях. - person Flat Eric; 20.04.2014
comment
Спасибо за ваше предложение, позвольте мне сначала попробовать некоторое время. :) - person Biboo Chung; 20.04.2014