Skip to content
Snippets Groups Projects
Commit fa15a457 authored by shidqizh's avatar shidqizh
Browse files

fix: change category to dropdown

parent 6dbea81e
Branches
Tags
No related merge requests found
Pipeline #61521 canceled with stages
......@@ -9,8 +9,10 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.Spinner
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.fragment.app.Fragment
......@@ -22,7 +24,9 @@ import java.time.LocalDateTime
class TransactionInputFragment : Fragment() {
private lateinit var nama_transaksi: EditText
private lateinit var nominal_transaksi: EditText
private lateinit var kategori_transaksi: EditText
// private lateinit var kategori_transaksi: EditText
private lateinit var kategori_transaksi: Spinner
private lateinit var lokasi_transaksi: EditText
private lateinit var btnSave: Button
private lateinit var database: AppDatabase
......@@ -47,6 +51,11 @@ class TransactionInputFragment : Fragment() {
database = AppDatabase.getInstance(requireContext())
val categories = arrayOf("pemasukan", "pengeluaran")
val adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, categories)
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
kategori_transaksi.adapter = adapter
val args = arguments
if (args != null) {
val id = args.getInt("id", 0)
......@@ -54,37 +63,40 @@ class TransactionInputFragment : Fragment() {
nama_transaksi.setText(transaction.nama)
nominal_transaksi.setText(transaction.nominal.toString())
kategori_transaksi.setText(transaction.kategori)
kategori_transaksi.setSelection(categories.indexOf(transaction.kategori))
lokasi_transaksi.setText(transaction.lokasi)
}
btnSave.setOnClickListener {
if (nama_transaksi.text.isNotEmpty() && nominal_transaksi.text.isNotEmpty() && kategori_transaksi.text.isNotEmpty() && lokasi_transaksi.text.isNotEmpty()) {
if (args != null) {
database.transactionDao().update(
TransactionEntity(
args.getInt("id", 0),
LocalDateTime.now(),
nama_transaksi.text.toString(),
kategori_transaksi.text.toString(),
nominal_transaksi.text.toString().toDouble(),
lokasi_transaksi.text.toString()
)
if (nama_transaksi.text.isNotEmpty() && nominal_transaksi.text.isNotEmpty() && lokasi_transaksi.text.isNotEmpty()) {
val category = kategori_transaksi.selectedItem.toString()
val transactionEntity = if (args != null) {
TransactionEntity(
args.getInt("id", 0),
LocalDateTime.now(),
nama_transaksi.text.toString(),
category,
nominal_transaksi.text.toString().toDouble(),
lokasi_transaksi.text.toString()
)
listener.onTransactionSubmitted()
} else {
database.transactionDao().insertAll(
TransactionEntity(
null,
LocalDateTime.now(),
nama_transaksi.text.toString(),
kategori_transaksi.text.toString(),
nominal_transaksi.text.toString().toDouble(),
lokasi_transaksi.text.toString()
)
TransactionEntity(
null,
LocalDateTime.now(),
nama_transaksi.text.toString(),
category,
nominal_transaksi.text.toString().toDouble(),
lokasi_transaksi.text.toString()
)
listener.onTransactionSubmitted()
}
if (args != null) {
database.transactionDao().update(transactionEntity)
} else {
database.transactionDao().insertAll(transactionEntity)
}
listener.onTransactionSubmitted()
} else {
Toast.makeText(requireContext(), "Input invalid", Toast.LENGTH_SHORT).show()
}
......
......@@ -63,14 +63,16 @@
android:layout_marginTop="5dp"
android:layout_marginRight="30dp"
android:layout_marginLeft="30dp">
<EditText
<Spinner
android:id="@+id/kategori_transaksi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Kategori (pengeluaran/pemasukan)"/>
android:layout_marginTop="16dp"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment