我很欣赏有很多有用的堆栈问题和我的问题的答案,但我遇到了过去没有的问题。
问题:
我正在使用光标在视图中的行中填充textviews(不使用listview - 我知道这很疯狂)。我正在尝试格式化从数据库列STUDENT_POINTS
中取出的字符串值,这些值放在textview tpoints
中。这是我正在使用的代码:
public void bindView(View v, final Context context, Cursor c) {
final int id = c.getInt(c.getColumnIndex(Students.STUDENT_ID));
final String name = c.getString(c.getColumnIndex(Students.STUDENT_NAME));
final String age = c.getString(c.getColumnIndex(Students.STUDENT_AGE));
final String points = c.getString(c.getColumnIndex(Students.STUDENT_POINTS));
final String teachernote = c.getString(c.getColumnIndex(Students.TEACHERNOTE));
final byte[] image = c.getBlob(c.getColumnIndex(Students.IMAGE));
ImageView iv = (ImageView) v.findViewById(R.id.photo);
if (image != null) {
if (image.length > 3) {
iv.setImageBitmap(BitmapFactory.decodeByteArray(image, 0,image.length));
}
}
TextView tname = (TextView) v.findViewById(R.id.name);
tname.setText(name);
TextView tage = (TextView) v.findViewById(R.id.age);
tage.setText(age);
TextView tpoints = (TextView) v.findViewById(R.id.points);
tpoints.setText(String.format(points, "%1$,.2f"));
final StudentsConnector sqlCon = new StudentsConnector(context);
剩下的bindView
用于按钮,所以我没有把它包含在这里。问题在于:
tpoints.setText(String.format(points, "%1$,.2f"));
我打算用逗号分隔大数字,但这没有任何作用!如果有人有时间,请你告诉我我做错了什么?
提前致谢。
答案 0 :(得分:1)
你有两个参数向后 - 你应该有格式字符串后跟数据字符串:String.format(“%1 $,。2f”,points);
在我的代码中使用这个小片段为我格式化了很好:
double points = 56789.45f;
String boogie = String.format("%1$,.2f", points );
它产生了一个数字56,789.45 但由于高速公路的精确性,更大的数字不能很好地工作。您可能希望将尾数从它们中分离出来,将它们单独格式化并组合起来。