Android 对讲十进制公告

Android 对讲十进制公告,android,decimal,talkback,accessibilityservice,Android,Decimal,Talkback,Accessibilityservice,我对回话有问题。在我的字符串中,我有以下数字 1827年 这是一个荷兰数字,所以这个数字的意思是: 1欧元82.7美分。 但反馈说: 180027欧元。 所以这个问题只有当我有一个超过2位小数的数字时才会发生。如何解决这个问题 ---编辑--- 当我阅读本页时: 似乎我必须将数字1827的发音如下: 一点八二七如果是一个数字,就采取行动。如何做到这一点 ---编辑--- 我包括以下内容: StringTokenizer stringTokenizer = new StringTokenizer

我对回话有问题。在我的字符串中,我有以下数字

1827年

这是一个荷兰数字,所以这个数字的意思是: 1欧元82.7美分。

但反馈说: 180027欧元。

所以这个问题只有当我有一个超过2位小数的数字时才会发生。如何解决这个问题

---编辑---

当我阅读本页时:

似乎我必须将数字1827的发音如下:

一点八二七如果是一个数字,就采取行动。如何做到这一点

---编辑---

我包括以下内容:

 StringTokenizer stringTokenizer = new StringTokenizer(value, ".");
    String currencyBeforeComma = null;
    String currencyAfterComma = null;

    while (stringTokenizer.hasMoreTokens()) {
        currencyBeforeComma = stringTokenizer.nextToken();
        currencyAfterComma = stringTokenizer.nextToken();
    }

    result = currencyBeforeComma + " point " + currencyAfterComma;
所以现在它的发音是:一点八雷鸣二十七。所以这仍然是我现在想要的

---编辑---

这就是我所做的。我为值字符串中的每个字符以及、或创建了一个空格。我将其替换为逗号或点文本


这一方法目前有效,但不是一个干净的解决方案。如果其他人有更好的解决方案,请分享

尝试此方法,并根据您的要求修改您的解决方案

TextView currencylbl = (TextView) findViewById(R.id.currencylbl);
        boolean countryCurrency = true;
        String currency = "1,827";
    if(countryCurrency==true && currency.contains(",")){

            StringTokenizer stringTokenizer = new StringTokenizer(currency, ",");
            String currencyBeforeComma = null;
            String currencyAfterComma = null;

            while (stringTokenizer.hasMoreTokens()) {
                currencyBeforeComma = stringTokenizer.nextToken();
                currencyAfterComma = stringTokenizer.nextToken();
                currencylbl.setText(currency);
            } 

            Double double1 = Double.parseDouble(currencyAfterComma);
            double1 = Double.parseDouble(currencyBeforeComma)+double1/1000;
            currencylbl.setContentDescription(double1+"");
        }
countryCurrency是指特定的国家/地区货币。 也可根据您的要求进行修改

            Double double1 = Double.parseDouble(currencyAfterComma);
            double1 = Double.parseDouble(currencyBeforeComma)+double1/1000;
            currencylbl.setContentDescription(double1+"");
xml是

<TextView 
    android:id="@+id/currencylbl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="24sp"
    />

尝试此操作并根据您的要求修改

TextView currencylbl = (TextView) findViewById(R.id.currencylbl);
        boolean countryCurrency = true;
        String currency = "1,827";
    if(countryCurrency==true && currency.contains(",")){

            StringTokenizer stringTokenizer = new StringTokenizer(currency, ",");
            String currencyBeforeComma = null;
            String currencyAfterComma = null;

            while (stringTokenizer.hasMoreTokens()) {
                currencyBeforeComma = stringTokenizer.nextToken();
                currencyAfterComma = stringTokenizer.nextToken();
                currencylbl.setText(currency);
            } 

            Double double1 = Double.parseDouble(currencyAfterComma);
            double1 = Double.parseDouble(currencyBeforeComma)+double1/1000;
            currencylbl.setContentDescription(double1+"");
        }
countryCurrency是指特定的国家/地区货币。 也可根据您的要求进行修改

            Double double1 = Double.parseDouble(currencyAfterComma);
            double1 = Double.parseDouble(currencyBeforeComma)+double1/1000;
            currencylbl.setContentDescription(double1+"");
xml是

<TextView 
    android:id="@+id/currencylbl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="24sp"
    />


我只看到逗号而不是小数点,您的要求是这样的,对吗。荷兰使用阿拉伯数字。所以逗号就是小数点。我只看到逗号而不是小数点,你的要求就是这样,对吗。荷兰使用阿拉伯数字。所以逗号是小数点。明天我会试试:)我可以知道问题出在哪里吗?它的发音与默认行为相同。请参阅我的第二次编辑,了解我为修复它所做的额外工作。@Dennis他们是不同的可访问性“提供者”。内置谷歌和三星。我已经测试了我的答案。请尝试:Double Double 1=Double.parseDouble(currencyAfter逗号);------double1=Double.parseDouble(currencyBeforeComa)+double1/1000;------currencylbl.setContentDescription(double1+“”);我明天会试试这个:)我可以知道问题出在哪里吗?它的默认行为是一样的。请参阅我的第二次编辑,了解我为修复它所做的额外工作。@Dennis他们是不同的可访问性“提供者”。内置谷歌和三星。我已经测试了我的答案。请尝试:Double Double 1=Double.parseDouble(currencyAfter逗号);------double1=Double.parseDouble(currencyBeforeComa)+double1/1000;------currencylbl.setContentDescription(double1+“”);