我正在使用 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_new_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>
以下代码用于 field.xml
<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 数据库中。
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
请使用以下代码更改您的功能。首先获取父布局,然后从父布局中删除子布局。我建议你只使用一种线性布局。
在 NewSal.kt
中修改下面的函数。
fun deleteItem(view: View) {
val linearParent = view.getParent().getParent().parent as LinearLayout
val linearChild = view.getParent().parent as LinearLayout
linearParent.removeView(linearChild)
}
答案 1 :(得分:2)
使用以下代码更新您的 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>