Android Studio:从多语言应用中的资源获取字符串时出错
Android Studio: Error getting string from resource in multi-language app
我的应用程序中有一个经典的多语言设置,有两个 'values' 文件夹:values
用于默认丹麦语,values-se
用于瑞典语。我的设备设置为语言环境 sw-SE
,但我的应用程序仍以丹麦语(默认)显示字符串资源。
如果我将丹麦语资源移动到文件夹 values-da
(对于丹麦语)并创建一个空文件夹 values
,那么我会收到找不到资源的错误消息。在这种情况下,如果找不到丹麦语或瑞典语字符串。
这是对资源的典型调用:
m_ButtonOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String email = m_EditEmail.getText().toString();
String pass = m_EditPassword.getText().toString();
if (email.equals("") == false && pass.equals("") == false) {
//Save user info to Crashlytics
Crashlytics.setUserEmail(email);
showProgressDialog(getResources().getString(R.string.wait), getResources().getString(R.string.logging_on));
Intent logOnIntent = new Intent(v.getContext(), dk.le34.taskassistant.activity.TaskAssistantService.class);
logOnIntent.addCategory("dk.le34.taskassistant.LOG_ON");
logOnIntent.putExtra("EMAIL", email);
logOnIntent.putExtra("PASSWORD", pass);
logOnIntent.putExtra("REMEMBER", m_CheckBoxRemember.isChecked());
startService(logOnIntent);
} else {
Toast.makeText(v.getContext(), getResources().getString(R.string.user_details), Toast.LENGTH_LONG).show();
}
}
});
我的设置是按照书本进行的,为什么会出现这些错误?
瑞典语的语言环境是 "sv_SE"。您的瑞典语资源需要进入 values-sv
,而不是 values-se
。
"sv" 是语言(在本例中为瑞典语)
"SE" 是国家(在本例中为瑞典)
我的应用程序中有一个经典的多语言设置,有两个 'values' 文件夹:values
用于默认丹麦语,values-se
用于瑞典语。我的设备设置为语言环境 sw-SE
,但我的应用程序仍以丹麦语(默认)显示字符串资源。
如果我将丹麦语资源移动到文件夹 values-da
(对于丹麦语)并创建一个空文件夹 values
,那么我会收到找不到资源的错误消息。在这种情况下,如果找不到丹麦语或瑞典语字符串。
这是对资源的典型调用:
m_ButtonOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String email = m_EditEmail.getText().toString();
String pass = m_EditPassword.getText().toString();
if (email.equals("") == false && pass.equals("") == false) {
//Save user info to Crashlytics
Crashlytics.setUserEmail(email);
showProgressDialog(getResources().getString(R.string.wait), getResources().getString(R.string.logging_on));
Intent logOnIntent = new Intent(v.getContext(), dk.le34.taskassistant.activity.TaskAssistantService.class);
logOnIntent.addCategory("dk.le34.taskassistant.LOG_ON");
logOnIntent.putExtra("EMAIL", email);
logOnIntent.putExtra("PASSWORD", pass);
logOnIntent.putExtra("REMEMBER", m_CheckBoxRemember.isChecked());
startService(logOnIntent);
} else {
Toast.makeText(v.getContext(), getResources().getString(R.string.user_details), Toast.LENGTH_LONG).show();
}
}
});
我的设置是按照书本进行的,为什么会出现这些错误?
瑞典语的语言环境是 "sv_SE"。您的瑞典语资源需要进入 values-sv
,而不是 values-se
。
"sv" 是语言(在本例中为瑞典语) "SE" 是国家(在本例中为瑞典)