diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2a4bbd8..0c9f587 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -45,4 +45,6 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) + val fragment_version = "1.8.9" + implementation("androidx.fragment:fragment-ktx:$fragment_version") } \ No newline at end of file diff --git a/app/src/main/java/com/example/android_25_2/MainActivity.kt b/app/src/main/java/com/example/android_25_2/MainActivity.kt index aed359b..b7076ed 100644 --- a/app/src/main/java/com/example/android_25_2/MainActivity.kt +++ b/app/src/main/java/com/example/android_25_2/MainActivity.kt @@ -1,11 +1,16 @@ package com.example.android_25_2 import android.os.Bundle +import android.widget.Button +import android.widget.EditText import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +data class ListItem(val name: String) class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -16,5 +21,23 @@ class MainActivity : AppCompatActivity() { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } + + val editText: EditText = findViewById(R.id.edit_text) + val addButton : Button = findViewById(R.id.button_add) + val itemList = mutableListOf() + val recyclerView: RecyclerView = findViewById(R.id.recycler_view) + val adapter = NameAdapter(itemList) + + recyclerView.layoutManager = LinearLayoutManager(this) + recyclerView.adapter = adapter + + addButton.setOnClickListener { + val name = editText.text.toString() + if (name.isNotEmpty()){ + itemList.add(ListItem(name)) + adapter.notifyItemInserted(itemList.size -1) + editText.text.clear() + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/example/android_25_2/NameAdapter.kt b/app/src/main/java/com/example/android_25_2/NameAdapter.kt new file mode 100644 index 0000000..c555a0a --- /dev/null +++ b/app/src/main/java/com/example/android_25_2/NameAdapter.kt @@ -0,0 +1,49 @@ +package com.example.android_25_2 + +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.RecyclerView + +class NameAdapter(val items: MutableList) : RecyclerView.Adapter() { + + inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val nameText: TextView = itemView.findViewById(R.id.text_name) + val rootView: ConstraintLayout = itemView.findViewById(R.id.root_view) + + fun addText(item: ListItem) { + nameText.text = item.name + + + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item, parent, false) + return ViewHolder(view) + } + + override fun onBindViewHolder(viewHolder: ViewHolder, position: Int){ + viewHolder.nameText.text = items[position].name + viewHolder.rootView.setOnClickListener { + AlertDialog.Builder(viewHolder.rootView.context) + .setTitle(R.string.dialog_title) + .setMessage(R.string.dialog_message) + .setPositiveButton(R.string.dialog_positive_message) { dialog, _ -> + items.removeAt(position) + notifyItemRemoved(position) + dialog.dismiss() + } + .setNegativeButton(R.string.dialog_negative_message, null) + .show() + } + } + + override fun getItemCount() = items.size +} + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9affce0..fe66936 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,4 +7,42 @@ android:layout_height="match_parent" tools:context=".MainActivity"> + + +