답변:
이 시도
String mess = getResources().getString(R.string.mess_1);
최신 정보
String string = getString(R.string.hello);
getString(int)
또는 getText(int)
을 사용 하여 문자열을 검색 할 수 있습니다 . getText(int)
문자열에 적용된 서식있는 텍스트 스타일을 유지합니다.
참조 : https://developer.android.com/guide/topics/resources/string-resource.html
getResouces().getInteger(R.integer.my_value_in_xml)
활동 중 :
this.getString(R.string.resource_name)
활동하지 않지만 컨텍스트에 액세스 할 수있는 경우 :
context.getString(R.string.resource_name)
application.getString(R.string.resource_name)
this
활동 중에는 포함하지 않아도됩니다 . 간단하게 getString()
할 수 있습니다.
나는 이것을 사용하고있다 :
String URL = Resources.getSystem().getString(R.string.mess_1);
그런데 strings.xml에서 다음과 같이 문자열 배열을 만들 수도 있습니다.
<string-array name="tabs_names">
<item>My Tab 1</item>
<item>My Tab 2</item>
</string-array>
그런 다음 활동에서 다음과 같이 참조를 얻을 수 있습니다.
String[] tab_names = getResources().getStringArray(R.array.tab_names);
String tabname1=tab_names[0];//"My Tab 1"
나중에 참조 할 목적으로 만 사용하십시오.
에서 문자열 리소스 문서 는 말합니다 :
getString (int) 또는 getText (int)를 사용하여 문자열을 검색 할 수 있습니다. getText (int)는 문자열에 적용된 서식있는 텍스트 스타일을 유지합니다.
응용 프로그램의 컨텍스트에 연결하십시오
class MY_APPLICATION_NAME: Application() {
companion object {
private lateinit var instance: MY_APPLICATION_NAME
fun getAppContext(): Context = instance.applicationContext
}
override fun onCreate() {
instance = this
super.onCreate()
}
}
inline fun Int.toLocalizedString(): String = MY_APPLICATION_NAME.getAppContext().resources.getString(this)
strings.xml
<resources>
<!-- ....... -->
<string name="no_internet_connection">No internet connection</string>
<!-- ....... -->
</resources>
문자열 값을 가져옵니다.
val errorMessage = R.string.no_internet_connection.toLocalizedString()
당신이 쓰는 동안 R
. 당신은 R.java
일식에 의해 생성 된 클래스를 참조하고 , 메소드 내부에서 읽으려고하는 리소스를 사용 getResources().getString()
하고 전달합니다 .id
getString()
예 : String[] yourStringArray = getResources().getStringArray(R.array.Your_array);
**
이 코드가 도움이 되길 바랍니다.
**
String user = getResources().getString(R.string.muser);
최신 정보
getString(R.string.some_string_id)
모두에 사용할 수 있습니다 .Activity
Fragment
Context.getString(R.string.some_string_id)
직접 액세스 할 수없는 곳에서 사용할 수 있습니다 getString()
. 처럼 Dialog
.문제 는 클래스 의 메소드와 같이 액세스 권한 이없는Context
곳 Util
입니다.
컨텍스트없이 아래의 메소드를 가정하십시오.
public void someMethod(){
...
// can't use getResource() or getString() without Context.
}
이제이 Context
방법에서 매개 변수로 전달 하고getString().
public void someMethod(Context context){
...
context.getString(R.string.some_id);
}
내가하는 일은
public void someMethod(){
...
App.getRes().getString(R.string.some_id)
}
뭐? 앱 어디에서나 사용하는 것은 매우 간단합니다!
다음은 어디에서나 리소스에 액세스 할 수 있는 보너스 고유 솔루션Util class
입니다.
import android.app.Application;
import android.content.res.Resources;
public class App extends Application {
private static App mInstance;
private static Resources res;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
res = getResources();
}
public static App getInstance() {
return mInstance;
}
public static Resources getResourses() {
return res;
}
}
manifest.xml
<application
태그에 이름 필드를 추가하십시오 .
<application
android:name=".App"
...
>
...
</application>
이제 잘 가세요.
strings.xml에 정의 된 값을 직접 읽을 수 있습니다.
<resources>
<string name="hello">Hello StackOverflow!</string>
</resources>
변수로 설정하십시오.
String mymessage = getString(R.string.hello);
그러나 뷰에 문자열을 정의 할 수 있습니다.
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"/>
this.getString(R.string.some_id)
이미Context
(활동 또는 서비스) 에있는 경우이를 단순화 할 수 있습니다 .