我在strings.xml
的Toast中显示错误消息。
喜欢这个
mErrorMsgId=R.string.username_or_password_incorrectfull;
但现在我需要将消息与R.string.add_selfhosted_blog
连接起来以避免翻译不一致。
阅读一些类似的问题,但无法弄清楚。
修改
我想在username_or_password_incorrectfull字符串中点击单词后连接nux_add_selfhosted_blog ...
<string name="username_or_password_incorrectfull">The username or password you entered is incorrect
\- If you\'re a self hosted user, don\'t forget to tap **Add Self Hosted Site** and fill the URL field</string>
<string name="nux_add_selfhosted_blog">Add self-hosted site</string>
我怎么能实现这个?
答案 0 :(得分:4)
你直接将R.string.username_or_password_incorrectfull
与R.string.add_selfhosted_blog
连接在一起,因为它们不是String
个实例,而是strings.xml
中实际字符串的资源ID。你可以得到2个字符串,然后正常连接它们。
这样的事情:
String string1 = getResources().getString(R.string.username_or_password_incorrectfull);
String string2 = getResources().getString(R.string.add_selfhosted_blog);
String combined = string1 + string2;
答案 1 :(得分:1)
方法的第二个参数makeText接受stringResId或只接受String
例如:
String error = getResources().getString(R.string.username_or_password_incorrectful);
String error2 = getResources().getString(R.string.add_selfhosted_blog);
String conctString = error + " " + error2;
Toast.makeText(context, conctString, duration).show();
答案 2 :(得分:0)
如果您想简单地从String
资源中结合这两个strings.xml
,那么您可以实现这一目标......
String errorMessage = getString(R.string.username_or_password_incorrectfull) + getString(R.string.add_selfhosted_blog);
然后在`Toast
中显示连接的错误消息Toast.makeText(context, errorMessage, Toast.LENGTH_SHORT).show();
答案 3 :(得分:0)
您可以按照以下方式在另一个字符串的中间插入一个字符串,
String mErrorMsgId = getResources().getString(R.string.username_or_password_incorrectfull); // + getResources().getString(R.string.nux_add_selfhosted_blog);
String firstPart = mErrorMsgId.substring( 0, mErrorMsgId.indexOf( "tap") + 4 );
String selfhosted_blog = getResources().getString(R.string.nux_add_selfhosted_blog) + " ";
String thirdPart = mErrorMsgId.substring( mErrorMsgId.indexOf( "tap") + 4 );
mErrorMsgId = firstPart + selfhosted_blog + thirdPart;
答案 4 :(得分:0)
只需从两个ID中检索字符串并像往常一样使用+
连接,并将结果字符串变量放入Toast中。
String messageToUser = getResources().getString(R.string.username_or_password_incorrectfull) + getResources().getString(R.string.add_selfhosted_blog);
Toast.makeText(context, messageToUser, Toast.LENGTH_SHORT).show();
答案 5 :(得分:0)
你可以使用MessageFormat。
将username_or_password_incorrectfull设置为格式字符串
...忘记点按{0}并填写网址...
然后使用MessageFormat.format(username_or_password_incorrectfull,nux_add_selfhosted_blog)
答案 6 :(得分:0)
您可以使用我创建的该库来进行此操作:https://github.com/LikeTheSalad/android-string-reference,它将根据您定义的模板字符串将您要使用的所有字符串连接起来,然后在构建时生成最终的XML字符串。因此,对于您的情况,可以这样定义字符串:
<string name="nux_add_selfhosted_blog">Add self-hosted site</string>
<string name="template_username_or_password_incorrectfull">The username or password you entered is incorrect
\- If you\'re a self hosted user, don\'t forget to tap ${nux_add_selfhosted_blog} and fill the URL field</string>
然后在构建项目之后,将生成以下字符串:
<string name="username_or_password_incorrectfull">The username or password you entered is incorrect
\- If you\'re a self hosted user, don\'t forget to tap Add self-hosted site and fill the URL field</string>
对于您对模板和/或值所做的任何更改,该工具都会使此自动生成的字符串保持更新。在回购页面上的更多信息。
答案 7 :(得分:0)
您可以像在C#/ Java中一样简单地添加/连接字符串,
这里的地址1和地址2是EditText(TextBox)
String finalString = Address1.getText().toString() + " "+ Address2.getText().toString();