我正在尝试做类似的事情。你解决了吗?我想我应该手动完成!我认为使用电话号码作为登录名(并非所有公司都将号码存储在电话上),然后将消息号码与登录号码进行比较。在布局上你可以有这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="1.0" >
<TextView
android:id="@+id/txtMessageDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginBottom="5dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginTop="10dip"
android:maxWidth="250dip"/>
<TextView
android:id="@+id/txtMessageRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/righttext"
android:layout_marginLeft="16dp"
android:maxWidth="250dip" />
<TextView
android:id="@+id/txtMessageLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="37dp"
android:layout_toRightOf="@+id/lefttext"
android:maxWidth="250dip"/>
</RelativeLayout>
Whit 记录的号码您可以知道该号码是来自您的号码还是来自另一方的号码,因此在代码中您可以扩展布局并使用“如果”您可以写下您的姓名或联系人姓名。与此类似的东西:
if(o.getOriginatingAddress().equals(MainActivity.loggedNumber))
tvOutMessage.setText("me: " + o.getMessageBody());
else
tvInMessage.setText("contact:" + o.getMessageBody());
我不知道这是否是最好的解决方案,但希望它有所帮助。