Где макет читает ресурсы? - PullRequest
0 голосов
/ 03 августа 2011

Какой метод я должен переопределить, который xml layout использует для чтения resources, связанный с, пример:

, если у меня было TextView в моем layout:

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:id="@+id/textview1"
                android:text="@String/text_test1"
                </TextView>

и в моих Activity в onCreate мы всегда используем setContentView: setContentView(R.layout.sample);

-

мой вопрос: когда мы используем xml файл как макет в действиях, как макет считывает ресурсы, такие как android:text="@String/text_test1, так что я могу, например, переопределить его, чтобы при запросе макета любой String я мог связать с ним другой текст?

-

Примечание : я не ищу обычный путь, найдя представление в XML, а затем изменив его свойства.Я ищу abstract способ изменить каждый String, запрошенный в макете resources по xml.

Ответы [ 3 ]

0 голосов
/ 03 августа 2011

, если вы хотите изменить текст по коду, используйте это:

TextView textView = (TextView) findViewById(R.id.textview1);

textView.setText (. GetResources () GetString (R.string.yourtextishere));

0 голосов
/ 03 августа 2011

Я не уверен, что вы имеете в виду именно.В любом случае в папке res/ есть все ресурсы, которые понадобятся вашему приложению во время выполнения.String - это ресурс, определенный в файле value/string.xml.

Во время выполнения ADT генерирует статический класс Java, который связывает ID для любого из ваших ресурсов, а также строк.Таким образом, когда вы устанавливаете макет вашей активности, поле строки будет получено по определенному идентификатору в этом классе.

Если вы захотите изменить текст textView, вам просто нужно получить объект, представляющийtextView во время выполнения с:

TextView textView = (TextView) findViewById(R.id.textview1);

и использовать его методы для установки текста:

textView.setText("New Text");

надеюсь, это поможет.

0 голосов
/ 03 августа 2011

Чтобы изменить текст, вам просто нужно использовать это в своей деятельности.

  ((TextView)findViewById(R.id.textview1)).setText("New Text");

Чтобы переопределить весь TextView, вам нужно создать собственный класс textView, который расширяет TextView и выполнять там свои вещи.

...