按钮附加示例
Button Append Example
我正在尝试向按钮名称添加文本,例如按钮 "ButtonName" 被 button.append("now")
"ButtonNameNow" 给出未捕获的异常
有没有我得到这个的例子或原因我搜索过例如什么也没找到我也不明白Google关于按钮追加的文档但我之前在Textview上测试过
E/UncaughtException: java.lang.IndexOutOfBoundsException
at android.graphics.Paint.getTextRunAdvances(Paint.java:1908)
at android.text.TextLine.handleText(TextLine.java:747)
at android.text.TextLine.handleRun(TextLine.java:898)
at android.text.TextLine.measureRun(TextLine.java:414)
at android.text.TextLine.measure(TextLine.java:293)
at android.text.TextLine.metrics(TextLine.java:267)
at android.text.Layout.getLineExtent(Layout.java:998)
at android.text.Layout.drawText(Layout.java:329)
at android.widget.Editor.drawHardwareAccelerated(Editor.java:1401)
at android.widget.Editor.onDraw(Editor.java:1324)
at android.widget.TextView.onDraw(TextView.java:5259)
at android.view.View.draw(View.java:14520)
at android.view.View.getDisplayList(View.java:13404)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1379)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.draw(View.java:14523)
at android.widget.FrameLayout.draw(FrameLayout.java:472)
at android.view.View.getDisplayList(View.java:13404)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.draw(View.java:14523)
at android.widget.FrameLayout.draw(FrameLayout.java:472)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2386)
at android.view.View.getDisplayList(View.java:13404)
at android.view.View.getDisplayList(View.java:13446)
at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1609)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1484)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2476)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2340)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1963)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1053)
at android.vi
button.setText(button.getText()+"now");
我遇到了同样的问题。如果我将文本附加到按钮,应用程序会因 java.lang.IndexOutOfBoundsException 致命错误而崩溃。这个问题我发现 only for Android 6 (API23)。
修复是:
String noItems = String.valueOf(tokens.length) + " " + getResources().getString(R.string.items);
lastConnectedItems.setText(noItems);
而不是:
lastConnectedItems.setText(String.valueOf(tokens.length));
lastConnectedItems.append(" ");
lastConnectedItems.append(getResources().getString(R.string.share));
lastConnectedItems 是按钮。
希望对某人有所帮助:)
我正在尝试向按钮名称添加文本,例如按钮 "ButtonName" 被 button.append("now")
"ButtonNameNow" 给出未捕获的异常
有没有我得到这个的例子或原因我搜索过例如什么也没找到我也不明白Google关于按钮追加的文档但我之前在Textview上测试过
E/UncaughtException: java.lang.IndexOutOfBoundsException
at android.graphics.Paint.getTextRunAdvances(Paint.java:1908)
at android.text.TextLine.handleText(TextLine.java:747)
at android.text.TextLine.handleRun(TextLine.java:898)
at android.text.TextLine.measureRun(TextLine.java:414)
at android.text.TextLine.measure(TextLine.java:293)
at android.text.TextLine.metrics(TextLine.java:267)
at android.text.Layout.getLineExtent(Layout.java:998)
at android.text.Layout.drawText(Layout.java:329)
at android.widget.Editor.drawHardwareAccelerated(Editor.java:1401)
at android.widget.Editor.onDraw(Editor.java:1324)
at android.widget.TextView.onDraw(TextView.java:5259)
at android.view.View.draw(View.java:14520)
at android.view.View.getDisplayList(View.java:13404)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1379)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.draw(View.java:14523)
at android.widget.FrameLayout.draw(FrameLayout.java:472)
at android.view.View.getDisplayList(View.java:13404)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.getDisplayList(View.java:13399)
at android.view.View.getDisplayList(View.java:13446)
at android.view.View.draw(View.java:14237)
at android.view.ViewGroup.drawChild(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2947)
at android.view.View.draw(View.java:14523)
at android.widget.FrameLayout.draw(FrameLayout.java:472)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2386)
at android.view.View.getDisplayList(View.java:13404)
at android.view.View.getDisplayList(View.java:13446)
at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1609)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1484)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2476)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2340)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1963)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1053)
at android.vi
button.setText(button.getText()+"now");
我遇到了同样的问题。如果我将文本附加到按钮,应用程序会因 java.lang.IndexOutOfBoundsException 致命错误而崩溃。这个问题我发现 only for Android 6 (API23)。
修复是:
String noItems = String.valueOf(tokens.length) + " " + getResources().getString(R.string.items);
lastConnectedItems.setText(noItems);
而不是:
lastConnectedItems.setText(String.valueOf(tokens.length));
lastConnectedItems.append(" ");
lastConnectedItems.append(getResources().getString(R.string.share));
lastConnectedItems 是按钮。
希望对某人有所帮助:)