java - 字符串格式在 Android Studio 的 ListView 中显示不正确
问题描述
我的目标是创建一个 ListView,其中包含一个单词后跟一些数字。现在,对于这个列表,单词的长度因条目而异,但每个数字的宽度应该完全相同。
这是所需输出的示例(在命令行中):
自然,对于这个问题,首先想到的是简单地使用 String.format 在每个单词中正确填充适当数量的空格,但这样做并不能完全给我正确的输出。
像这样:
ArrayList<String> arr = new ArrayList<>();
arr.add(String.format("%-10s", "aaaaaa") + "10");
arr.add(String.format("%-10s", "aa") + "10");
arr.add(String.format("%-10s", "asdkaosds") + "10");
arr.add(String.format("%-10s", "aaaaaaaaaa") + "10");
ArrayAdapter<String> itemsAdapter = new ArrayAdapter<(this,android.R.layout.simple_list_item_1,arr);
ListView listView = findViewById(R.id.answers);
listView.setAdapter(itemsAdapter);
输出:
简单地用星号替换空格告诉我已经填充了适当数量的空格
arr.add(String.format("%-10s", "aaaaaa").replace(' ','*') + "10");
arr.add(String.format("%-10s", "aa").replace(' ','*') + "10");
arr.add(String.format("%-10s", "asdkaosds").replace(' ','*') + "10");
arr.add(String.format("%-10s", "aaaaaaaaaa").replace(' ','*') + "10");
输出:
唯一的其他合乎逻辑的解释是每个字符的长度不同。
所以我的问题是:
我该如何解决这个问题?
解决方案
是的,您说得对,“每个字符的长度各不相同”。
如@Pankaj Kumar 所述,您必须并排使用 2 个 textview。
但如果你不想这样做,你可以使用任何等宽字体。
例子
ArrayList<String> arr = new ArrayList<>();
arr.add(String.format("%-10s", "aaaaaa") + "10");
arr.add(String.format("%-10s", "aa") + "10");
arr.add(String.format("%-10s", "asdkaosds") + "10");
arr.add(String.format("%-10s", "aaaaaaaaaa") + "10");
final Typeface mTypeface = Typeface.createFromAsset(getAssets(), "fonts/DroidSansMono.ttf");
ArrayAdapter<String> itemsAdapter =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr){
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent){
TextView item = (TextView) super.getView(position,convertView,parent);
item.setTypeface(mTypeface);
return item;
}
};
ListView listView = findViewById(R.id.answers);
listView.setAdapter(itemsAdapter);
这是一些等宽字体的链接
推荐阅读
- c++ - 如何修复被推回向量的垃圾值
,当我推送一个包含整数的字符串时 - r - 抑制 R 脚本的输出
- javascript - 如何在 React-Native 的屏幕两侧显示 NavigationDrawer?
- https - Possible reasons to Base64encode the password in a HTTPS request
- elasticsearch - 弹性搜索如何获取日期直方图 Agg 桶中所有百分位值的总平均值
- tensorflow - 从字符串重新创建张量
- javascript - 通过简单的 JS 强制 iframe 自动播放
- javascript - 页面未提交,列表框中有大量项目
- unity3d - 网格文本与画布文本性能
- neo4j - 如何在 neo4j Movie Graph 上让演员拥有不止一部电影