Установка значений в TextFields - PullRequest
1 голос
/ 08 марта 2011

Я хотел бы написать тест, который просто проверяет, что у меня есть правильное отображение между полями в моем макете и результирующим бизнес-объектом. Но когда я пытаюсь установить значения для своих текстовых полей, я получаю сообщение об ошибке, которое говорит, что я не должен пытаться установить значения для текстовых полей из другого потока. Поэтому в принципе я не могу настроить действие в состояние, в котором я могу попытаться создать свой бизнес-объект.

Но как написать такой тест? Я бы предпочел, чтобы мне не нужно было добавлять код в действие, предназначенное только для поддержки теста, но, может быть, я не могу избежать этого?

Спасибо заранее Roland

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Просмотр объектов доступен только из потока пользовательского интерфейса.Вы должны пытаться установить эти значения из рабочего потока, который вы создали где-то еще.

Вы должны взглянуть на класс AsyncTask, чтобы увидеть, может ли это решить вашу проблему (у него есть функции, которые выполняютсяПоток пользовательского интерфейса, например onResult, onProgress, ...)

Другая возможность - использовать функцию Activity.runOnUiThread (Runnable).

Это все, что я могу сказать с подробностями, которые вы дали.Возможно, если вы отправите пример кода, вы получите более точные ответы.

0 голосов
/ 08 марта 2011

Где в своей деятельности вы пытаетесь установить TextField?

Если вам просто нужен простой тест, вы можете сделать это с помощью метода onCreate. Ниже приведен фрагмент моего функционального кода:

public void onCreate( Bundle savedInstanceState ){  
    super.onCreate( savedInstanceState );
    setContentView( R.layout.main );
    _dateView = (TextView) findViewById( R.id.ScheduleDate );
    _dateView.setText( "TODAY" );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...