Я пытаюсь улучшить свое приложение ToDoList. Я хочу, чтобы мой EditText на lauch был нередактируемым полем, чтобы пользователь мог использовать ссылки, которые он сохранил, например, при предыдущем использовании приложения. Если пользователь захочет отредактировать поле, чтобы сохранить его в базе данных, он может «активировать» редактирование, нажав кнопку или двойной щелчок или что-то еще.
Это мой первый вопрос, поэтому я надеюсь, что не нарушаю никаких правил. Спасибо за совет
<EditText
android:id="@+id/taskDescEV"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:autoLink="web"
android:background="@drawable/task_row_background"
android:enabled="true"
android:gravity="start|top"
android:hint="@string/taskDescTV_hint"
android:inputType="textMultiLine|text"
android:linksClickable="true"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingEnd="8dp"
android:paddingBottom="8dp"
android:textColor="@color/text_color"
android:textColorHint="@color/hint_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/saveBtn"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/taskNameEV" />
@InternalCoroutinesApi
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
navController = Navigation.findNavController(view)
taskViewModel = ViewModelProvider(this).get(TaskViewModel::class.java)
val oldTaskName = args.itemName
val oldTaskDesc = args.itemDesc
taskNameEV.requestFocus()
taskNameEV.setText(oldTaskName)
taskDescEV.setText(oldTaskDesc)
showKeyboard()
taskDescEV.isEnabled = false
saveBtn.setOnClickListener {
if (taskNameEV.text.isNotEmpty()) {
hideKeyboard()
Handler().postDelayed(
{
val taskNewName = taskNameEV.text.toString().capitalize(Locale.ROOT)
val taskNewDesc = taskDescEV.text.toString()
val oldTask = Task(oldTaskName, oldTaskDesc)
val newTask = Task(taskNewName, taskNewDesc)
taskViewModel.edit(oldTask, newTask)
navController!!.navigate(R.id.action_editFragment_to_listFragment)
}, 300
)
} else {
Toast.makeText(activity, "You can't add empty task", Toast.LENGTH_LONG).show()
}
}
}