如何禁用 EditText
Posted
技术标签:
【中文标题】如何禁用 EditText【英文标题】:How to disable a EditText 【发布时间】:2018-12-07 16:14:24 【问题描述】:我怎样才能在写完东西后禁用 EditText,使其保持该值并且不能被修改。因为我用一个按钮做了一个 EditText,当我点击按钮时 EditText 得到了日期使用日期选择器,但我希望在此 EditText 中不能写入
【问题讨论】:
Try googling before asking on Stack overflow. There are answers out there 【参考方案1】:您可以通过编程方式禁用 edittext(在 java/kt 文件中)。 您可以在 kotlin 中使用以下代码。
edittext.text = "your text" //sets text in edittext
edittext.enabled = false //disables edittext field
【讨论】:
【参考方案2】:始终禁用 EditText。
edittext.isEnabled = false
当点击按钮时,将 EditText 的值设置为所需的日期字符串。
edittext.text = "DD/MM/YYYY"
这样 EditText 将不可写,但您可以使用按钮设置值。
【讨论】:
【参考方案3】:添加属性 android:inputType="date" 和 android:onClick="your_function" 以将您的 edittext 上的点击绑定到一个函数
这是一个活动 MainActivity.kt 的示例:
class MainActivity : Activity()
lateinit var editTextDate: EditText;
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
editTextDate = findViewById(R.id.edittext_date);
fun openPickerDate(view : View)
val c = Calendar.getInstance()
val year = c.get(Calendar.YEAR)
val month = c.get(Calendar.MONTH)
val day = c.get(Calendar.DAY_OF_MONTH)
val dpd = DatePickerDialog(this, DatePickerDialog.OnDateSetListener view, year, monthOfYear, dayOfMonth ->
editTextDate.setText("" + dayOfMonth + "/" + monthOfYear + "/" + year)
, year, month, day)
dpd.show()
这里是布局activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_
android:layout_
tools:context=".MainActivity">
<EditText
android:id="@+id/edittext_date"
android:layout_
android:layout_
android:text="01/01/2018"
android:inputType="date"
android:onClick="openPickerDate"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
【讨论】:
以上是关于如何禁用 EditText的主要内容,如果未能解决你的问题,请参考以下文章