按钮附加示例

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 是按钮。
希望对某人有所帮助:)