android 把fragment放到activity中,并且接收参数

下面是我把环信的EaseChatFragment放在activity的代码,BaseActivity2是我自己封装的基类,集成你自己的基类一样的。关键代码就三行,在代码中标注了。

关键代码:
var chatFragment = ChatFragment()
chatFragment?.arguments = intent.extras
supportFragmentManager.beginTransaction().add(R.id.container, chatFragment!!).commit()

em_activity_chat.xml布局代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/container"
    >

</FrameLayout>
class ChatActivity : BaseActivity2() {
    var activityInstance: ChatActivity? = null
    private var chatFragment: EaseChatFragment? = null
    internal var toChatUsername: String? = null
    internal var group_name_show: String? = null
    internal var user_name: String? = null
    internal var photo_path: String? = null
    override val layoutRes: Int
    //这个页面的布局
        get() = R.layout.em_activity_chat

    override fun initLogic() {
        EventBusUtils.register(this)
        activityInstance = this
        toChatUsername = intent.extras!!.getString("userId")
       
        //关键代码就这三行,其他的都是我项目的逻辑
        chatFragment = ChatFragment()
        chatFragment?.arguments = intent.extras
        supportFragmentManager.beginTransaction().add(R.id.container, chatFragment!!).commit()
    }

    override fun setListener() {

    }

    override fun processLogic() {

    }

    override fun onDestroy() {
        super.onDestroy()
        EventBusUtils.unregister(this)
        activityInstance = null
    }

    override fun onNewIntent(intent: Intent) {
        val username = intent.getStringExtra("userId")
        if (toChatUsername == username)
            super.onNewIntent(intent)
        else {
            finish()
            startActivity(intent)
        }

    }

    override fun onBackPressed() {
        chatFragment?.onBackPressed()
    }

    fun getToChatUsername(): String? {
        return toChatUsername
    }

    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
        PermissionsManager.getInstance().notifyPermissionsChange(permissions, grantResults)
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        when (requestCode) {
            1 -> {
                if (resultCode == Activity.RESULT_OK) {
                    finish()
                } else if (resultCode == 11) {
                    if (data != null) {
                        chatFragment?.setGroup(data.getStringExtra("group_name"))
                    }
                }
            }

        }


    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    fun onReceiveEvent(event: EventBusUtils.EventMessage<*>) {
        when (event.code) {
            EVENT_GROUP_DETAIL -> {
                startActivityForResult<GroupDetailActivity>(1, "groupId" to event.data.toString())
            }
        }
    }
}
发布了38 篇原创文章 · 获赞 11 · 访问量 8794

猜你喜欢

转载自blog.csdn.net/u013750244/article/details/102681480