我在每20个字符后添加一个新行时遇到问题.我见过很多帖子,我对android:命令感到困惑,哪些命令应该用于TextView/EditText.
这是我为textview编写的XML代码:
我也尝试过各种命令,例如:
android:maxLength(20) - 这会切断我的文本,但不会在新行上显示其余部分
android:maxWidth(100p) - 错误
我保持的错误是:
渲染期间引发异常:java.util.Locale.toLanguageTag()Ljava/lang/String;
有没有人能解决我的问题这是否必须在java中完成?如果是这样的话,请提前谢谢
在@Der Golem提供链接的帮助下,我尝试制作一个解决方案.想法是你需要从类文件中设置文本.每20个字符后附加'\n'字符.
需要变量,
TextView textView; String tmpString = "1234567890123456789012345678901234567890"; StringBuffer finalString;
您需要在onCreate方法中编写的代码块.
textView = (TextView) findViewById(R.id.txt); int index = 0; finalString = new StringBuffer(); while (index < tmpString.length()) { Log.i(TAG, "test = " + tmpString.substring(index, Math.min(index + 20,tmpString.length()))); finalString.append(tmpString.substring(index, Math.min(index + 20,tmpString.length()))+"\n"); index += 20; } textView.setText(finalString);
更新: 参考,
String mainString = "Hi Android, How are you? I hope you are doing great."; String[] stringArray = mainString.split("\\s+"); String tmpString = ""; for (String singleWord : stringArray) { Log.d(TAG, "singleWord = " + singleWord); if ((tmpString + singleWord + " ").length() > 20) { finalString.append(tmpString + "\n"); Log.e(TAG, "finalString = " + finalString); tmpString = singleWord + " "; } else { tmpString = tmpString + singleWord + " "; } Log.d(TAG, "tmpString = " + tmpString); } if (tmpString.length() > 0) { finalString.append(tmpString); Log.e(TAG, "last finalString = " + finalString); } textView.setText(finalString);
不是一个很好的解决方案,但可能符合您的要求.如果您需要进一步的帮助,请告诉我.