Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как вывести значение TextView?


(Игорь Кожин) #1

На экране имеется textView:

    <TextView
            android:id="@+id/date"
            style="@style/ListItemDateText"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@id/clock"
            android:text="12:01"/>

В значение text устанавливается текущее время, работает корректно. Мне необходимо проверять изменения значения данного поля в тесте, но не могу вывести его текущее значение.
Пытался сделать так:

    String s1 = solo.getCurrentActivity().findViewById(R.id.date).toString();

но по System.out.println(“s1=” + s1); вижу, что значение s1=false, а не текущее время.

Также пытался через (используя Robotium):

    TextView s1 = (TextView) solo.getView(solo.getString(R.id.date));

но так падает ошибка, что View with id: ‘false’ is not found!
Гугл ответа не дал.

Как вывести значение TextView?


(Антон Еритиков) #2

Попробуйте: String s1 = textview1.getText().toString();


(Игорь Кожин) #3

Не понимаю как вы имеете ввиду надо сделать.
Я попробовал:

    TextView textView1 = (TextView) getActivity().findViewById(R.id.date);
    String s1 = textView1.getText().toString();

но при выполнении теста на второй строчке падает ошибка:

java.lang.NullPointerException
at com.ancort.cryptophone.guitest.CAMyTest.testMail_000(CAMyTest.java:94)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:177)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1619)

Что я делаю не так?


(Игорь Кожин) #4

В гугле встречал нечто подобное:

    TextView textView1 = (TextView)findViewByID(R.id.date);
    String s = textView1.getText().toString();

Но у меня в такой конструкции findViewByID выделяет красным с комментарием “cannot resolve method findViewById(int)”, как я понял класс должен наследоваться от Activity, но мой класс наследуется от другого класса. Можно ли это как обойти?