gpt4 book ai didi

java - 阿拉伯数字在带有双向文本/数字的android textview中被反转

转载 作者:行者123 更新时间:2023-11-29 02:17:47 34 4
gpt4 key购买 nike

我一直在尝试在 TextView 中显示带有阿拉伯数字的阿拉伯文本。但问题是文本中的数字以相反的顺序出现。

((TranslationViewHolder)holder).text.setText("وَاِذَا لَقُوا الَّذِيْنَ اٰمَنُوْا قَالُوْ٘ا اٰمَنَّاﵗ وَاِذَا خَلَوْا اِلٰي شَيٰطِيْنِهِمْﶈ قَالُوْ٘ا اِنَّا مَعَكُمْﶈ اِنَّمَا نَحْنُ مُسْتَهْزِءُوْنَ ١٤ ");

这里字符串的末尾有一个数字,但这个数字或任何其他数字会被颠倒,所以数字 '١٤' 变成 '٤١'。

我已经尝试过如下使用 Bidi

String mixedLanguageText = elements[position].getAr(); // mixed-language text

mixedLanguageText = BidiFormatter.getInstance(new Locale("ar")).unicodeWrap(mixedLanguageText, TextDirectionHeuristics.RTL);
((TranslationViewHolder)holder).text.setText(mixedLanguageText);
((TranslationViewHolder)holder).text.setTypeface(typeface);

但对输出没有影响。

我也试过像下面这样设置文本方向

mixedLanguageText = BidiFormatter.getInstance(new Locale("ar")).unicodeWrap(mixedLanguageText, TextDirectionHeuristics.ANYRTL_LTR);

最佳答案

尽管您说您尝试过 BidiFormatter,但我在使用混合语言“希伯来语/英语”时遇到了同样的问题,这就是我解决它的方法:

//        msg = "506, cvv או תעודת שהות שגויים";

if(BidiFormatter.getInstance().isRtlContext()){
Locale rtlLocale = Locale.getDefault(); // RTL locale
msg = BidiFormatter.getInstance(rtlLocale).unicodeWrap(msg, TextDirectionHeuristicsCompat.ANYRTL_LTR);
}


Snackbar.make(mDrawerLayout,msg,length).show();

希望对你有帮助。

关于java - 阿拉伯数字在带有双向文本/数字的android textview中被反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235439/

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