0

我正在尝试在两个两个片段中自定义 Mesibo UI。在第一个选项卡中,它将显示所有聊天,在第二个选项卡中显示所有联系人。在这里,我想自己传递联系人列表。

我的第一个问题是如何将用户名作为列表传递以使用 MesiboUserListFragment 显示联系人

第二个问题是如何实现 On User 单击侦听器,它将启动 Messaging 活动,我可以在其中自定义每个消息布局。

我已经尝试过以下方式,但它不起作用。

实现 MesiboUserListFragment.FragmentListener 的活动

    @Override
    public boolean Mesibo_onClickUser(String s, long l, long l1) {

    Intent peerMessageIntent = new Intent(MessagingActivity.this,PeerMessageActivity.class);
    peerMessageIntent.putExtra("s", s);
    peerMessageIntent.putExtra("l", l);
    peerMessageIntent.putExtra("l1", l1);
    startActivity(peerMessageIntent);


    return true;
}

对等消息活动

public class PeerMessageActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_peer_message);

    Intent intent = getIntent();
    String s = intent.getStringExtra("s");
    long l = intent.getLongExtra("l", 0);
    long l1 = intent.getLongExtra("l1", 0);

    MesiboMessagingFragment mFragment = new MessagingUIFragment();
    

    Bundle bl = new Bundle();
    bl.putString(MesiboUI.PEER, s);
    bl.putLong(MesiboUI.GROUP_ID, l);
    mFragment.setArguments(bl);

    Log.v("Starting the Transation", "Hereeeeeeeeeeee");

    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.fragment_container, mFragment).commit();

}

}

消息 UI 片段

public class MessagingUIFragment extends MesiboMessagingFragment implements MesiboRecycleViewHolder.Listener {

@Override
public int Mesibo_onGetItemViewType(Mesibo.MessageParams messageParams, String message) {

    return MesiboRecycleViewHolder.TYPE_NONE;
}

@Override
public MesiboRecycleViewHolder Mesibo_onCreateViewHolder(ViewGroup viewGroup, int viewType) {
    return null;
}

@Override
public void Mesibo_onBindViewHolder(MesiboRecycleViewHolder mesiboRecycleViewHolder, int viewType, boolean selected, Mesibo.MessageParams messageParams, Mesibo.MesiboMessage mesiboMessage) {

}

@Override
public void Mesibo_oUpdateViewHolder(MesiboRecycleViewHolder mesiboRecycleViewHolder, Mesibo.MesiboMessage mesiboMessage) {

}


@Override
public void Mesibo_onViewRecycled(MesiboRecycleViewHolder mesiboRecycleViewHolder) {

}

}

activity_peer_message.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".PeerMessageActivity">

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" />

</LinearLayout> 
4

1 回答 1

0

您是否阅读过这里的 UI 自定义部分,它包含您所要求的一切

https://mesibo.com/documentation/ui-modules/

https://mesibo.com/documentation/ui-modules/android/messaging/

mesibo 用户列表片段在多种模式下工作,消息列表是默认的,然后您可以为不同的功能传递模式,参考源代码here。

参考这里的源代码,https://github.com/mesibo/ui-modules-android/blob/master/Messaging/messaging/src/main/java/com/mesibo/messaging/UserListFragment.java#L239

从这里的源代码中可以看到,有 MODE_SELECTCONTACT 可以传递并尝试一下。

于 2020-08-19T08:01:36.100 回答