You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中调用setText方法时如何换行显示完整乘法表

问题根因排查
  • 问题核心是TextView.setText()方法的特性:调用该方法时会直接覆盖TextView之前的所有内容,而非在原有内容后追加。你在for循环里每轮都调用setText,相当于每轮都清空之前的计算结果,只保留当前行的内容,最终循环结束后自然只剩最后一行2*10=20,和你设置的lines、maxLines属性没有关联。
修复方案

你有两种常用的实现方式可选:

方案1:先拼接完整内容再一次性赋值

提前用字符串变量拼接所有乘法表行,循环结束后统一给TextView赋值,性能最优,代码如下:

String s= editTextNumber.getText().toString() ;
int t= Integer.parseInt(s);
int p=0,i;
// 定义StringBuilder拼接所有行内容
StringBuilder tableBuilder = new StringBuilder();
for(i=1;i<=10;i++)
{
    p= t*i ;
    // 把当前行追加到拼接器中
    tableBuilder.append(t).append("*").append(i).append("=").append(p).append("\n");
}
// 循环结束后一次性设置完整内容
textView2.setText(tableBuilder.toString());

方案2:调用append方法追加内容

如果不需要提前做内容校验,也可以每次循环直接调用TextView的append()方法实现内容追加:

String s= editTextNumber.getText().toString() ;
int t= Integer.parseInt(s);
int p=0,i;
// 先清空TextView原有内容,避免旧内容残留
textView2.setText("");
for(i=1;i<=10;i++)
{
    p= t*i ;
    // 追加当前行,不会覆盖之前的内容
    textView2.append( t+"*"+i+"=" +p+"\n" ) ;
}

注意:你当前设置了android:maxLines="10",刚好匹配乘法表最多10行的需求,超出行数的内容会被自动截断,不需要额外调整配置。

内容的提问来源于stack exchange,提问作者Maya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:06:01