2012-04-09 3 views
1

문자열과 연결된 정수 값을 표시하는 TextView 컨트롤에서 R.string 파일로 찾으려합니다.R.string에서 TextView 문자열 ID 가져 오기

그래서, 나는 MyTextView라는 텍스트 뷰를하고 난 GetStringId (처럼, 지금이

MyTextView.setText(R.string.MyString); 

로의 문자열, 제가 원하는 것은 나에게 MyTextView의 문자열 ID를 제공합니다 일부 기능을 만드는 것입니다 무언가를 관련 MyTextView). 어쩌면 TextView 패키지에 이미 구현되어있어 찾을 수 없습니다. 당신의 도움이

+0

올바르게 이해하면,'GetStringId (MyTextView) -method는 케이스에'R.string.MyString' (또는 관련 정수)를 반환할까요? –

+0

바로! 그것이 내가 원하는 것입니다. – ali

+0

이것이 쉽게 아카이브 될지 확신하지 못합니다. 어떤 목적으로 필요합니까? –

답변

1

에 대한

덕분에 Android Docs에 설명 된대로 당신은 "언어 자격 - 자원"를 사용한다, 응용 프로그램에 여러 번역을 추가합니다.

기본적으로 대체 언어 (대개 영어 임) 문자열을 res/values/strings.xml- 파일에 추가합니다.

다른 언어로 번역 된 언어 (예 : 스페인어)는 지정된 언어 한정자 (ISO 639-1에 지정된 언어)로 언어 인증 된 디렉토리로 이동합니다. 스페인어의 경우이 값은 res/values-es/strings.xml입니다.

Android는 현재 장치 언어를 검사하고 해당 언어 한정자로 번역을 검색 한 다음 해당 파일에 지정된 문자열을 자동으로 사용합니다. 해당 언어 한정자가있는 폴더를 찾을 수없는 경우 한정자없이 폴더를 사용합니다 (예 : '대체'- 언어).

이것은 Android에서 제공하는 서비스로 해당 언어 인증 폴더에 해당 번역을 입력하기 만하면 Android에서 나머지 작업을 처리합니다. 당신은 쉽게 당신이 원하는 않는 텍스트 뷰에 텍스트를 설정하는 자신의 기능을 구현할 수 있습니다 internationalisation in android

+0

사용 된 strings.xml 파일을 프로그래밍 방식으로 변경할 수 있습니까? – ali

+0

필요가 없습니다. 장치 언어가 변경되면 Android에서 자동으로 처리합니다. –

+0

O.K. 아마도 데스크톱 개발자로서 데스크톱 앱과 같은 Android 앱을 처리하여 많은 실수를 저지른 것 같습니다. 따라서 응용 프로그램에서 "내부"언어를 변경하기위한 단추를 추가 할 필요가 없습니다. 사용자가 응용 프로그램을 원할 경우 O.S. 전체의 언어를 변경해야하기 때문입니다. – ali

1

:

또한이 오래된 질문을 참조하십시오. 다음과 같이 (문자열 ID를 얻기를 위해) 두 번째 기능에 다음 텍스트를 설정하고의 기능에 뭔가를

textview.setText(R.string.my_text); 
    textview.setTag(new Integer(R.string.my_text)); 

않습니다 : 간단하게 뭔가를 할

return ((Integer)textview.getTag()).intValue(); 

는 다음의 문서를 읽기 두 가지 기능 :

http://developer.android.com/reference/android/view/View.html#setTag() http://developer.android.com/reference/android/view/View.html#getTag()

+0

예, 그렇게 할 수 있습니다. – ali