Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从项目列表中删除项目详细信息_Android_Kotlin - Fatal编程技术网

Android 如何从项目列表中删除项目详细信息

Android 如何从项目列表中删除项目详细信息,android,kotlin,Android,Kotlin,我正在使用android Studio和Kotlin创建一个android应用程序,并设法创建一个新字段,使用在线教程将更多项目添加到列表中。我无法让删除按钮工作 以下是NewSale.kt的代码 package com.example.trad import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.L

我正在使用android Studio和
Kotlin
创建一个android应用程序,并设法创建一个新字段,使用在线教程将更多项目添加到列表中。我无法让删除按钮工作

以下是
NewSale.kt的代码

package com.example.trad

import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.widget.LinearLayout

class NewSale : AppCompatActivity() {
    private var parentLinearLayout: LinearLayout? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_new_sale)
        parentLinearLayout = findViewById(R.id.parent_linear_layout)
    }

    fun deleteItem(view: View) {
        parentLinearLayout!!.removeView(view.parent as View)
    }
    fun addMoreItem(view: View) {
        val inflater =
                getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
        val rowView: View = inflater.inflate(R.layout.field, null)
        parentLinearLayout!!.addView(rowView, parentLinearLayout!!.childCount - 1)
    }
}
以下是
activity\u new\u sale.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:id="@+id/parent_linear_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".NewSale">

    <ScrollView
        android:id="@+id/scrollView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"

        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="30dp"
            android:orientation="vertical">

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

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:paddingRight="40dp">

                    <EditText
                        android:id="@+id/etxItemCode"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="Enter Item Code"
                        android:paddingRight="40dp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="Item description.."
                        android:paddingRight="80dp"
                        android:textSize="12sp" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <EditText
                        android:id="@+id/etxItemquality"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginEnd="10dp"
                        android:hint="Pcs" />

                    <EditText
                        android:id="@+id/etxSellPrice"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginEnd="10dp"
                        android:hint="Price" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="Amt"
                        android:textSize="20sp" />

                    <Button
                        android:id="@+id/btnDeleteItem"
                        android:layout_width="0dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:layout_marginStart="10dp"
                        android:layout_weight="1"
                        android:background="@android:drawable/ic_delete"
                        android:onClick="deleteItem" />

                </LinearLayout> 

            </LinearLayout>

            <Button
                android:id="@+id/btnAddMoreItem"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginStart="10dp"
                android:layout_marginTop="15dp"
                android:onClick="addMoreItem"
                android:text="Add More Item" />

            <Button
                android:id="@+id/btnGenerateInvocie"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginStart="10dp"
                android:layout_marginTop="15dp"
                android:text="Generate Invoice" />
        </LinearLayout>

    </ScrollView>

</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="30dp"
    android:orientation="vertical">

    <ScrollView
        android:id="@+id/scrollView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"

        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0">

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

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

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:paddingRight="40dp">

                    <EditText
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="Enter Item Code"
                        android:paddingRight="40dp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="Item description.."
                        android:paddingEnd="80dp"
                        android:textSize="12sp" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <EditText
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginEnd="10dp"
                        android:hint="Pcs" />

                    <EditText
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginEnd="10dp"
                        android:hint="Price" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="Amt"
                        android:textSize="20sp" />

                    <Button
                        android:id="@+id/btnDeleteItem"
                        android:layout_width="0dp"
                        android:layout_height="40dp"
                        android:layout_weight="1"
                        android:background="@android:drawable/ic_delete"
                        android:onClick="deleteItem" />

                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

    </ScrollView>

</LinearLayout>
我试图创建的是应用程序的计费/开票部分

我将输入项目及其价格、数量和计算项目金额,并在输入所有项目后计算总金额。然后,将其添加到firebase数据库


有人能帮我吗?

请用下面的代码更改您的函数。首先获取父布局,然后从父布局中删除子布局。我建议您只使用一种线性布局

NewSal.kt
中修改下面的函数

fun deleteItem(view: View) { 
    val linearParent = view.getParent().getParent().parent as LinearLayout
    val linearChild = view.getParent().parent as LinearLayout
    linearParent.removeView(linearChild) 
}

请用下面的代码更改您的函数。首先获取父布局,然后从父布局中删除子布局。我建议您只使用一种线性布局

NewSal.kt
中修改下面的函数

fun deleteItem(view: View) { 
    val linearParent = view.getParent().getParent().parent as LinearLayout
    val linearChild = view.getParent().parent as LinearLayout
    linearParent.removeView(linearChild) 
}

用以下代码更新feild.xml文件。删除滚动条以解决额外空间问题。我还从XML中删除了不必要的线性布局

**feild.xml**
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/linearlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="5dp">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingRight="40dp">

                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:hint="Enter Item Code"
                    android:paddingRight="40dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:hint="Item description.."
                    android:paddingEnd="80dp"
                    android:textSize="12sp" />

            </LinearLayout>

                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="10dp"
                    android:hint="Pcs" />

                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="10dp"
                    android:hint="Price" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:hint="Amt"
                    android:textSize="20sp" />

                <Button
                    android:id="@+id/btnDeleteItem"
                    android:layout_width="0dp"
                    android:layout_height="40dp"
                    android:layout_weight="1"
                    android:background="@android:drawable/ic_delete"
                    android:onClick="deleteItem" />

        </LinearLayout>
**feild.xml**

使用以下代码更新feild.xml文件。删除滚动条以解决额外空间问题。我还从XML中删除了不必要的线性布局

**feild.xml**
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/linearlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="5dp">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingRight="40dp">

                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:hint="Enter Item Code"
                    android:paddingRight="40dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:hint="Item description.."
                    android:paddingEnd="80dp"
                    android:textSize="12sp" />

            </LinearLayout>

                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="10dp"
                    android:hint="Pcs" />

                <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="10dp"
                    android:hint="Price" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:hint="Amt"
                    android:textSize="20sp" />

                <Button
                    android:id="@+id/btnDeleteItem"
                    android:layout_width="0dp"
                    android:layout_height="40dp"
                    android:layout_weight="1"
                    android:background="@android:drawable/ic_delete"
                    android:onClick="deleteItem" />

        </LinearLayout>
**feild.xml**


有人能帮我一下吗?这段代码中到底有什么东西没有按您期望的方式工作?告诉我们共享代码有什么问题。您有什么错误吗?谢谢您的及时回复。我无法删除项目。我有一个名为“deleteItem”的函数,当我点击delete按钮时,什么都没有发生。也没有错误。您只想删除视图,对吗?或者您想从数据库中删除该项?仅删除视图,因为这些项尚未插入到数据库中。有人能帮我吗?此代码中的哪些内容没有按您期望的方式工作?告诉我们共享代码有什么问题。您有什么错误吗?谢谢您的及时回复。我无法删除项目。我有一个名为“deleteItem”的函数,当我点击delete按钮时,什么都没有发生。也没有错误。您只想删除视图,对吗?或者您想从数据库中删除该项目?仅删除视图,因为这些项目尚未插入数据库。该操作有效,但我发现一个问题,即如果我从中间删除一个项目,其他项目不会向上或向下移动,这将创建一个空白区域。我们如何解决这个问题?我如何才能按照你的建议只使用一个线性布局,并保持结构完整?@Codist检查我的答案。这将有助于消除额外的空间。这是有效的,但我发现一个问题,如果我从中间删除一个项目,其他项目不会向上或向下移动,这将创建一个空白区域。我们如何解决这个问题?我如何才能按照你的建议只使用一个线性布局,并保持结构完整?@Codist检查我的答案。这将有助于删除额外的空间。您的代码运行良好,只是我必须在代码末尾添加“”。如何将我在这些字段中输入的数据保存到Firebase实时数据库?这是正确的方法还是有更好的方法来完成我想做的事情?您的代码运行得很好,只是我必须在末尾添加“”。如何将我在这些字段中输入的数据保存到Firebase实时数据库?这是正确的方法还是有更好的方法来做我想做的事情?