android获得textview数值,android-如何获取textview中的文本语言?

该博客介绍了如何在Android应用程序中检测接收到的短信文本的语言方向,特别是针对波斯语。通过使用Bidi类的getBaseLevel()或baseIsLeftToRight()方法,可以判断文本是从左到右还是从右到左。根据判断结果,动态设置TextView的layout_gravity属性,以确保波斯语等右到左语言正确显示。
摘要由CSDN通过智能技术生成

我在Android消息传递应用程序中有一个textview,我收到了我的android手机的消息,并在textviews中显示了它们,如果文本是波斯语,我想将layout_gravity设置为正确,那么如何检测从uri以下获得的文本语言?

Uri uri = Uri.parse("content://sms/");

解决方法:

有Bidi个班级.此类具有getBaseLevel()方法,如果您的文本从左到右,则返回0,否则返回1(如果从右到左).

例:

@Override

public View getView(final int position, View convertView, ViewGroup parent) {

ViewHolder holder;

Bidi bidi = new Bidi(userList.get(position).getName(), Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);

if(bidi.getBaseLevel() == 0)

convertView = myInflater.inflate(R.layout.list_add_friends_row, null);

else

convertView = myInflater.inflate(R.layout.list_add_friends_row_mirror, null);

还有另一种方法baseIsLeftToRight(),可能最好在if语句中使用.结果与上述相同.

Bidi bidi = new Bidi(userList.get(position).getName(), Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);

if(bidi.baseIsLeftToRight())

convertView = myInflater.inflate(R.layout.list_add_friends_row, null);

else

convertView = myInflater.inflate(R.layout.list_add_friends_row_mirror, null);

public final class Bidi

extends Object

This class implements the Unicode Bidirectional Algorithm.

A Bidi object provides information on the bidirectional reordering of

the text used to create it. This is required, for example, to properly

display Arabic or Hebrew text. These languages are inherently mixed

directional, as they order numbers from left-to-right while ordering

most other text from right-to-left.

Once created, a Bidi object can be queried to see if the text it

represents is all left-to-right or all right-to-left. Such objects are

very lightweight and this text is relatively easy to process.

If there are multiple runs of text, information about the runs can be

accessed by indexing to get the start, limit, and level of a run. The

level represents both the direction and the ‘nesting level’ of a

directional run. Odd levels are right-to-left, while even levels are

left-to-right. So for example level 0 represents left-to-right text,

while level 1 represents right-to-left text, and level 2 represents

left-to-right text embedded in a right-to-left run.

标签:persian,sms,detection,android

来源: https://codeday.me/bug/20191119/2037955.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值