相关疑难解决方法(0)

如何在String.Format中转义%?

我在我的strings.xml文件中存储SQL查询,我想用来String.Format在代码中构建最终的字符串.该SELECT语句使用类似的东西,如下所示:

SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'
Run Code Online (Sandbox Code Playgroud)

为了格式化我用%1 $ s替换'something',它变成:

SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'
Run Code Online (Sandbox Code Playgroud)

我用反斜杠来逃避单引号.但是我无法逃脱%号.

如何在strings.xml文件中包含like语句?

java string syntax android

402
推荐指数
3
解决办法
13万
查看次数

strings.xml中的参数是否可能?

在我的Android应用程序中,我将使用国际化来实现我的字符串.我的语法和句子用不同语言构建的方式有问题.

例如:

"5分钟前" - 英文

"vor 5 Minuten" - 德语

我可以在strings.xml中执行以下操作吗?

<string name="timeFormat">{0} minutes ago</string>
Run Code Online (Sandbox Code Playgroud)

然后有些神奇的

getString(R.id.timeFormat, dynamicTimeValue)
Run Code Online (Sandbox Code Playgroud)

此行为也将解决不同单词顺序的其他问题.

string parameters android dynamic optional

268
推荐指数
5
解决办法
14万
查看次数

从strings.xml中的另一个字符串引用一个字符串?

我想在strings.xml文件中引用另一个字符串中的字符串,如下所示(特别注意"message_text"字符串内容的结尾):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="button_text">Add item</string>
    <string name="message_text">You don't have any items yet! Add one by pressing the \'@string/button_text\' button.</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上面的语法,然后文本打印出"@ string/button_text"作为明文.不是我想要的.我想要打印消息文本"你还没有任何项目!按"添加项目"按钮添加一个项目."

有没有任何已知的方法来实现我想要的?

RATIONALE:
我的应用程序有一个项目列表,但是当该列表为空时,我会显示"@android:id/empty"TextView.TextView中的文本是通知用户如何添加新项目.我想让我的布局变得傻瓜变化(是的,我是个傻瓜:-)

xml string android

215
推荐指数
6
解决办法
8万
查看次数

Android TextView:"不要连接用setText显示的文本"

我通过以下方式使用setText()设置文本.

prodNameView.setText("" + name);

prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
Run Code Online (Sandbox Code Playgroud)

在此首先一个是使用简单,一个是设置文本与文本格式.

Android Studio非常有趣,我使用了Menu Analyze -> Code Cleanup,我得到了以上两行的建议.

在此输入图像描述

不要连接用setText显示的文本.使用带占位符的资源字符串.少...(Ctrl + F1)

调用TextView#setText时:

  • 永远不要调用Number#toString()来格式化数字; 它不会正确处理分数分隔符和特定于语言环境的数字.请考虑使用具有适当格式规范(%d或%f)的String#格式.
  • 不要传递字符串文字(例如"Hello")来显示文本.硬编码文本无法正确翻译为其他语言.请考虑使用Android资源字符串.
  • 不要通过连接文本块来构建消息.此类消息无法正确翻译.

我能为此做些什么?任何人都可以帮助解释这是什么,我该怎么办?

android concatenation string-concatenation textview

122
推荐指数
8
解决办法
7万
查看次数

Android复数处理"零"

如果我的strings.xml中有以下多个ressource:

   <plurals name="item_shop">
        <item quantity="zero">No item</item>
        <item quantity="one">One item</item>
        <item quantity="other">%d items</item>
   </plurals>   
Run Code Online (Sandbox Code Playgroud)

我正在使用以下方法向用户显示结果:

textView.setText(getQuantityString(R.plurals.item_shop, quantity, quantity));
Run Code Online (Sandbox Code Playgroud)

它适用于1及以上,但如果数量为0,那么我看到"0项".是否只有阿拉伯语支持"零"值,正如文档似乎表明的那样?或者我错过了什么?

android

77
推荐指数
4
解决办法
2万
查看次数

如何在android XML中连接多个字符串?

问题
我希望能够在Android XML代码中执行类似的操作:

<string name="title">@string/app_name test</string>
<string name="title2">@string/app_name @string/version_name</string>
Run Code Online (Sandbox Code Playgroud)

关于第一行代码编译器显示此错误

找不到与给定名称匹配的资源(在'title'处,值为'@ string/app_name test')

关于第二行代码编译器显示此错误

找不到与给定名称匹配的资源(在'title2'处,值为'@ string/app_name @ string/version_name')

问题
有人知道如何在Android XML中连接多个字符串吗?

基本原理
在许多代码位(在本例中为XML)中复制变量值是不好的做法.

android android-xml

71
推荐指数
1
解决办法
5万
查看次数

在XML中连接多个字符串?

我将详细介绍如何在android XML中连接多个字符串?最后有评论

For clarity, Its works:

<string name="title">@string/app_name</string>.- AndrzejDuś

我做了我自己的例子,但它不起作用.所以确实安杰错误或我做错了什么在我的代码.

R.strings.bbb应该包含"bbb aaa" 但不包含"bbb aaa""bbb @strings/aaa"

<string name="aaa">aaa</string>
<string name="bbb">bbb @strings/aaa</string>
Run Code Online (Sandbox Code Playgroud)

查询:

是否可以仅在xml中进行一些串联,而不更改源代码?

我不想在代码中编辑的原因,因为我使用了这个字符串 xml/preferences.xml

例如:

<ListPreference android:key="key_bbb" android:title="@string/bbb" ....

如果你知道我的意思,这里没有可能使用这样的东西

String title = res.getString(R.string.title, appName);
Run Code Online (Sandbox Code Playgroud)

xml string android

44
推荐指数
5
解决办法
6万
查看次数

这是什么意思"xmlns:xliff"?XML

这是什么意思?

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
Run Code Online (Sandbox Code Playgroud)

它可以在Android项目Strings.xml的resources文件夹values中看到.

xml syntax android xliff

29
推荐指数
2
解决办法
2万
查看次数

格式字符串XXX不是有效的格式字符串,因此不应将其传递给String.format

我有android应用程序和资源中的这个字符串:

<string name="create_group_select_people">Select up to %1$d people!</string>
Run Code Online (Sandbox Code Playgroud)

这是从片段调用的:

Integer countMax = 5; //also tried just "int" - nothing changed
getResources().getString(R.string.create_group_select_people, countMax);
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

Format string 'create_group_select_people' is not a valid format string so it should not be passed to String.format
Run Code Online (Sandbox Code Playgroud)

我无法理解什么是错的?当我启动应用程序时 - 它按字面意思显示"选择最多%1美元的人!"

java string android android-resources

23
推荐指数
5
解决办法
1万
查看次数

string.xml中的表情符号崩溃应用程序

我想在我的Android应用程序中集成表情符号.因此,我查找了utf-8符号的十六进制代码,并将以下内容添加到我的string.xml文件中:

<string name="thumbsup">Perfect <node>&#x1f44d;&#x1f44d;</node></string>
Run Code Online (Sandbox Code Playgroud)

这应该导致Perfect .但是,当呼叫活动尝试显示时,我的应用程序崩溃了:

JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xf0
Run Code Online (Sandbox Code Playgroud)

不是特别完美;)

xml android emoji

21
推荐指数
2
解决办法
1万
查看次数