Android 片段布局为空

Android 片段布局为空,android,kotlin,android-fragments,nullpointerexception,Android,Kotlin,Android Fragments,Nullpointerexception,我正在传递一个contacts类型的对象(Contact),onclick-in-RecyclerView并在另一个活动中使用intent和Serialize将其显示在片段中。但内容为空,不显示任何字段或标题。。空白版面不确定这里有什么问题 使用片段调用活动 holder.itemView.setOnClickListener { val intent = Intent(context, ContactDetailsHome::class.java)

我正在传递一个contacts类型的对象(Contact),onclick-in-RecyclerView并在另一个活动中使用intent和Serialize将其显示在片段中。但内容为空,不显示任何字段或标题。。空白版面不确定这里有什么问题

使用片段调用活动

        holder.itemView.setOnClickListener {
        val intent = Intent(context, ContactDetailsHome::class.java)
        intent.putExtra("contact", contact as Serializable)
        intent.putExtra("Edit", true)
        context.startActivity(intent)
    }
<ScrollView 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"
tools:context=".Contacts.ui.ContactDetails">

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp"
    android:padding="10dp"
    app:cardCornerRadius="10dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginTop="20dp"
            android:layout_marginEnd="20dp"
            android:layout_marginBottom="8dp"
            android:text="Name"
            android:textAllCaps="true"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/contDetails_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:enabled="false"
            android:hint="Contact Name"
            android:inputType="textPersonName"
            android:textColor="@color/txtcolor"
            android:textSize="14sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/phoneTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:layout_marginTop="8dp"
            android:text="Phone/Mobile No:"
            android:textAllCaps="true"
            android:visibility="visible"
            android:textSize="16sp" />

        <LinearLayout
            android:id="@+id/contact_numbers_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:orientation="vertical" />

        <TextView
            android:id="@+id/title_emails"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:layout_marginTop="8dp"
            android:text="Email"
            android:textAllCaps="true"
            android:textSize="16sp" />

        <LinearLayout
            android:id="@+id/contact_emails_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:orientation="vertical" />

        <Button
            android:id="@+id/edit_contact"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="30dp"
            android:layout_marginTop="20dp"
            android:background="@color/colorPrimary"
            android:text="Edit"
            android:textColor="#fff"
            android:textSize="20sp" />

        <Button
            android:id="@+id/delete_contact"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="30dp"
            android:layout_marginTop="20dp"
            android:background="@color/colorPrimary"
            android:layout_marginBottom="8dp"
            android:text="Delete"
            android:textColor="#fff"
            android:textSize="20sp" />
    </LinearLayout>
</androidx.cardview.widget.CardView>
生成版面的片段联系人详细信息

<ScrollView 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"
tools:context=".Contacts.ui.ContactDetails">

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp"
    android:padding="10dp"
    app:cardCornerRadius="10dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginTop="20dp"
            android:layout_marginEnd="20dp"
            android:layout_marginBottom="8dp"
            android:text="Name"
            android:textAllCaps="true"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/contDetails_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:enabled="false"
            android:hint="Contact Name"
            android:inputType="textPersonName"
            android:textColor="@color/txtcolor"
            android:textSize="14sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/phoneTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:layout_marginTop="8dp"
            android:text="Phone/Mobile No:"
            android:textAllCaps="true"
            android:visibility="visible"
            android:textSize="16sp" />

        <LinearLayout
            android:id="@+id/contact_numbers_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:orientation="vertical" />

        <TextView
            android:id="@+id/title_emails"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:layout_marginTop="8dp"
            android:text="Email"
            android:textAllCaps="true"
            android:textSize="16sp" />

        <LinearLayout
            android:id="@+id/contact_emails_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:orientation="vertical" />

        <Button
            android:id="@+id/edit_contact"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="30dp"
            android:layout_marginTop="20dp"
            android:background="@color/colorPrimary"
            android:text="Edit"
            android:textColor="#fff"
            android:textSize="20sp" />

        <Button
            android:id="@+id/delete_contact"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="30dp"
            android:layout_marginTop="20dp"
            android:background="@color/colorPrimary"
            android:layout_marginBottom="8dp"
            android:text="Delete"
            android:textColor="#fff"
            android:textSize="20sp" />
    </LinearLayout>
</androidx.cardview.widget.CardView>
类ContactDetails:Fragment(){

伴生对象{
@JvmStatic
有趣的开始(上下文:上下文,联系人:联系人?,iEdit:Boolean){
val starter=Intent(上下文,ContactDetails::class.java)
.putExtra(“联系人”,联系人可序列化)
.putExtra(“编辑”,iEdit)
context.startActivity(启动程序)
}
}
私有lateinit var联系人:联系人
私有lateinit var numEditList:ArrayList
私有lateinit var emailEditList:ArrayList
覆盖创建视图(
充气器:布局充气器,容器:视图组?,
savedInstanceState:捆绑?
):查看{
//为该碎片膨胀布局
充气机。充气(右布局。碎片视图\联系方式\容器,错误)
numEditList=ArrayList()
emailEditList=ArrayList()
返回视图
}
覆盖已创建的视图(视图:视图,保存状态:捆绑?){
if(活动?.intent?.getBooleanExtra(“编辑”,false)=true){
initEdit()
}否则{
initAdd()
}
删除联系人!!.setOnClickListener{
deleteContact()
Toast.makeText(活动,“联系人成功删除”,Toast.LENGTH\u SHORT.show())
活动?.finish()
}
}
private fun initEdit(){
//从对象获取值
联系人=(活动?.intent?.getSerializableExtra(“联系人”)作为联系人)
//将其指定给要显示的字段
contDetails\u name.setText(contact.name)
if(contact.numbers.isEmpty()){
phoneTitle!!.visibility=View.GONE
}
if(contact.emails.isEmpty()){
title\u电子邮件!!.visibility=View.GONE
}
for(联系电话号码。电话号码){
val editText=editText(活动)
editText.setText(数字)
editText.setTextColor(Color.parseColor(“#0d0d”))
editText.typeface=typeface.DEFAULT\u粗体
editText.textSize=20f
editText.isEnabled=false
numEditList.add(编辑文本)
联系人号码版面!!.addView(编辑文本)
}
用于(联系人中的电子邮件。电子邮件){
val editText=editText(活动)
editText.setText(电子邮件)
editText.setTextColor(Color.parseColor(“#0d0d”))
editText.typeface=typeface.DEFAULT\u粗体
editText.textSize=20f
editText.isEnabled=false
emailEditList.add(编辑文本)
联系电子邮件版面!!.addView(编辑文本)
}
编辑联系人!!.setOnClickListener{
如果(contDetails\u name.isEnabled){
if(contDetails\u name.text.toString().isEmpty()){
Toast.makeText(活动“联系人姓名不能为空”,Toast.LENGTH\u SHORT)
.show()
}
contDetails\u name.isEnabled=false
for(numEditList中的editText){
editText.isEnabled=false
}
对于(emailEditList中的editText){
editText.isEnabled=false
}
deleteContact()
addContact()
edit\u contact.text=“编辑”
Toast.makeText(活动“联系人更新成功”,Toast.LENGTH\u SHORT.show())
}否则{
contDetails\u name.isEnabled=true
for(numEditList中的editText){
editText.isEnabled=true
}
对于(emailEditList中的editText){
editText.isEnabled=true
}
编辑_contact.text=“保存”
}
}
}
布局文件

<ScrollView 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"
tools:context=".Contacts.ui.ContactDetails">

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp"
    android:padding="10dp"
    app:cardCornerRadius="10dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginTop="20dp"
            android:layout_marginEnd="20dp"
            android:layout_marginBottom="8dp"
            android:text="Name"
            android:textAllCaps="true"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/contDetails_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:enabled="false"
            android:hint="Contact Name"
            android:inputType="textPersonName"
            android:textColor="@color/txtcolor"
            android:textSize="14sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/phoneTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:layout_marginTop="8dp"
            android:text="Phone/Mobile No:"
            android:textAllCaps="true"
            android:visibility="visible"
            android:textSize="16sp" />

        <LinearLayout
            android:id="@+id/contact_numbers_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:orientation="vertical" />

        <TextView
            android:id="@+id/title_emails"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:layout_marginTop="8dp"
            android:text="Email"
            android:textAllCaps="true"
            android:textSize="16sp" />

        <LinearLayout
            android:id="@+id/contact_emails_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="20dp"
            android:orientation="vertical" />

        <Button
            android:id="@+id/edit_contact"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="30dp"
            android:layout_marginTop="20dp"
            android:background="@color/colorPrimary"
            android:text="Edit"
            android:textColor="#fff"
            android:textSize="20sp" />

        <Button
            android:id="@+id/delete_contact"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="30dp"
            android:layout_marginTop="20dp"
            android:background="@color/colorPrimary"
            android:layout_marginBottom="8dp"
            android:text="Delete"
            android:textColor="#fff"
            android:textSize="20sp" />
    </LinearLayout>
</androidx.cardview.widget.CardView>

发现在返回视图之前,我没有在oncreateView中声明视图。导致没有生成视图,因此为空片段

Val视图:视图=。。。。 返回视图