首页 > 解决方案 > 如何根据 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)
        })
    }
}

标签: androidandroid-studiokotlinandroid-edittext

解决方案


使用 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;
    }
});

推荐阅读