有时候我们需要显示这样一个东西例如:59.6%,但是呢又不想使用两个TextView
,于是呢就想到了使用字符串格式化的方式创建一个如下的资源文件
<string name="format_change_range">%.2f%</string>
然后呢再到TextView
中使用
<androidx.appcompat.widget.AppCompatTextView
style="@style/TextViewStyle.White"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin"
android:text="@{@string/format_change_range(turnover.changeRange)}"
于是呢就得到了这样 一个东西
2019-10-18 13:16:19.060 21326-21326/com.****.**** E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.microsight.kuaibu, PID: 21326
java.util.UnknownFormatConversionException: Conversion = 'End of String'
at java.util.Formatter$FormatSpecifierParser.peek(Formatter.java:2641)
at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2602)
at java.util.Formatter.parse(Formatter.java:2557)
at java.util.Formatter.format(Formatter.java:2504)
at java.util.Formatter.format(Formatter.java:2458)
at java.lang.String.format(String.java:2883)
at android.content.res.Resources.getString(Resources.java:466)
at com.****.****.databinding.ActivityTurnoverBindingImpl.executeBindings(ActivityTurnoverBindingImpl.java:173)
at androidx.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:472)
at androidx.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:444)
at androidx.databinding.ViewDataBinding$7.run(ViewDataBinding.java:196)
at androidx.databinding.ViewDataBinding$6.onViewAttachedToWindow(ViewDataBinding.java:164)
at android.view.View.dispatchAttachedToWindow(View.java:18358)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3397)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1761)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1460)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7183)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:696)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
后来无意中惊奇的发现这样就可以解决错误
<string name="format_change_range">%.2f%%</string>
虽然不知道为什么,但还是很开心的
avatar