繁体   English   中英

在Android TextView中设置动态换行符

[英]Set dynamic line break in an Android TextView

我有一个TextView,其中显示了我从JsonObject收到的电子邮件。

如果此电子邮件太长,它将在单个字符后面使用第二行。 例如:

example.email@email.co

为了避免这种情况,我想在有更多行的情况下换行

example.email@email
.com

假设您的最大长度是5。

int maxLength = 5;
String jsonReturnedData = "Hello World"

将其直接插入TextView之前,

jsonReturnedData = jsonReturnedData.substring(0, maxLength) + "\n" + jsonReturnedData.substring(maxLength, jsonReturnedData.length());

现在,您将如何修复maxLength? 您必须使用试错法检查不同的屏幕尺寸。 下面的代码将为您提供设备的屏幕尺寸,所有您需要做的就是从AVD或物理设备中进行检查,以实际修复要在String中折叠/放置新行的位置...

int screenSize = getResources().getConfiguration().screenLayout &
    Configuration.SCREENLAYOUT_SIZE_MASK;

String toastMsg;
switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
       toastMsg = "Large screen";
       break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        toastMsg = "Normal screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        toastMsg = "Small screen";
        break;
    default:
        toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();

希望这可以帮助。 干杯!

[PS:有趣的是,我昨天写了一个switch-case块,但是它不能正常工作(总是进入默认块),我想知道我的代码出了什么问题,当我写你的问题时,我终于明白了我错过了什么。 :p]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM