android - 如何根据 EditText 的文本隐藏按钮
问题描述
EditText
如果有文本,我希望按钮可见,否则不可见。
我怎样才能做到这一点?
我的代码:
class ChargeScreen : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.cslayout)
if(editText!==null){
button.visibility=View.INVISIBLE
} else {
button.visibility = View.VISIBLE
}
button.setOnClickListener({
editText.setText("")
editText.setHint("Type Your Number Of Card")
button.visibility = GONE
val inputManager: InputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputManager.hideSoftInputFromWindow(currentFocus.windowToken, InputMethodManager.SHOW_FORCED)
})
}
}
解决方案
使用 aTextWatcher
检测EditText
的内容何时更改并执行您想要的操作。
示例(Java):
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
//called after the EditText's text is changed
button.visibility = editable.length() > 0 ? View.VISIBLE : View.GONE;
}
});
推荐阅读
- windows - xcopy 0 文件已复制
- webpack - 使用 WebPack 复制整个文件夹文件和子文件夹
- android-studio - 在 Android Studio 上运行项目时出错
- c++ - 在 Visual Studio 中运行用 C++ 编写的 oracle db 客户端时出现错误 32104
- jenkins - java.lang.NoSuchMethodError:在步骤中找不到这样的 DSL 方法“pollScm”(Jenkins 脚本化管道)
- android - 通用图像加载器加载半个网址
- qt - 为什么 QT 中的 CreateFile 不起作用,我怎样才能把它作为 QLocalSocket 或类似的
- java - 程序在调试器中工作,但在运行时不工作
- terraform - 在一个资源中定义 Windows 和 Linux VM?
- sparql - 如何在 SPARQL 中选择谓词及其各自的标签?