gpt4 book ai didi

Android:setText 破坏格式化字符串

转载 作者:行者123 更新时间:2023-11-30 03:01:21 25 4
gpt4 key购买 nike

我是 Android 编程的新手,正在开发一款财务管理应用程序。目前我遇到了一个问题,setText() 方法破坏了我传入的字符串格式。

我有一个 Account 类,它有一个习惯的 toString 方法,该方法返回帐户信息的格式化字符串:

public String toString(int colWidth1, int colWidth2, int colWidth3) {
return String.format("%-" + colWidth1 + "s", myDisplayName) +
String.format("%-" + colWidth2 + "s", myBalance) +
String.format("%-" + colWidth3 + "s", myInterestRate);
}

在 AccountInfo Activity 中,我有:

// create a table that contains all account information of the current user
TableLayout accountTable = (TableLayout) findViewById(R.id.tableLayout_account_details);
List<Account> accountList = accountManager.getAllAccounts(CurrentUser.getCurrentUser().getUserName());

// for each account, display name, balance and interest rate
for (int i = 0; i < accountList.size(); i++) {
Account account = accountList.get(i);
TableRow accEntry = new TableRow(this);
Button accButton = new Button(this);
accButton.setText(account.toString(10, 10, 10));
Log.i("account info", account.toString(10, 10, 10));

// button format
TableRow.LayoutParams params = new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, -7, 0, -10);
accButton.setLayoutParams(params);
accButton.setGravity(Gravity.LEFT);

// add button to the row
accEntry.addView(accButton);

// add row to the table
accountTable.addView(accEntry);

// ...more code here for button click listener
}

虽然我的 logcat 打印出我想要的格式良好的字符串,但是按钮上的文本并没有很好地排列

(刚刚意识到我没有足够的声誉来发布我的应用程序的屏幕截图...)

我已经尝试调试了很长时间,但仍然没有头绪。非常感谢任何帮助!!!

编辑:截图

enter image description here

最佳答案

我的室友指出了问题!他太棒了!!!

对齐关闭,因为字体不是等宽的。简单的做

android:typeface="monospace"

在布局 xml 中,问题已解决!!!

关于Android:setText 破坏格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22494963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com