我遇到了在android格式字符串中有%n
換行符的問題。是否有可能在具有參數的strings.xml格式字符串中有%n個換行符?
這是預期輸出:
Address Line 1
City, State
所以我創建了一個格式字符串是這樣的:
%s%n%s, %s
但我得到這個錯誤:
Error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
我的字符串格式,所以第二個解決方案似乎沒有意義,所以我做了%s
的位置:
%1$s%n%2$s, %3$s
但我仍然有同樣的錯誤。
所以,我試圖使%n
位置也一樣,只是爲了看看是否會解決此問題:
%1$s%4$n%2$s, %3$s
然後我得到一個運行時錯誤(!!!)由java.util.Formatter
:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.app, PID: 27843
java.util.IllegalFormatFlagsException: %n doesn't take an argument
at java.util.Formatter$FormatToken.checkFlags(Formatter.java:1373)
at java.util.Formatter.transform(Formatter.java:1442)
at java.util.Formatter.doFormat(Formatter.java:1081)
at java.util.Formatter.format(Formatter.java:1042)
at java.util.Formatter.format(Formatter.java:1011)
at java.lang.String.format(String.java:1554)
at android.content.res.Resources.getString(Resources.java:431)
... // omitting project specific files
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:536)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:152)
at android.app.ActivityThread.main(ActivityThread.java:5497)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
如何在具有其他格式參數的strings.xml格式字符串中使用%n
換行符?可能嗎?如果不是,顯示換行符的最佳方式是什麼?
Android的文檔或API指南引用將不勝感激。
@Distwo'\ n'有效,但我更喜歡在格式字符串中使用'%n',所以我更新了我的問題,詢問是否有任何方法可以使用'%n',如果不是做新行的最好方法是什麼?也許答案是不可能的,'\ n'是最好的解決方案。 –
那怎麼樣:'%1 $ s%2 $ n%3 $ s,%4 $ s' – Distwo
Nevermind ...不起作用。 – Distwo