0

我很欣赏我的问题有很多有用的堆栈问题和答案,但我遇到了过去没有遇到的问题。

问题:

我正在使用光标在视图上的行中填充文本视图(不使用列表视图 - 我知道这很疯狂)。我正在尝试格式化从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"));

我打算用逗号分隔大量数字,但这无济于事!如果有人有时间,请告诉我我做错了什么?

提前致谢。

4

1 回答 1

1

你有你的两个参数 - 你应该有格式字符串后跟数据字符串: String.format("%1$,.2f", points );

在我的代码中使用这个小片段,这对我来说很好地格式化:

    double points = 56789.45f;
    String boogie = String.format("%1$,.2f", points );

它生成了一个数字 56,789.45 但由于格式器的精度,更大的数字不能很好地工作。您可能希望将尾数从它们中分离出来,分别格式化它们并将它们组合起来。

于 2013-04-19T00:27:40.723 回答