首页 > 解决方案 > 动态应用按钮

问题描述

我想创建一个按钮,就像我们在 WhatsApp 中使用的那样使用麦克风录制语音。

基本上,如果用户开始输入内容,则该麦克风按钮将转换为发送文本按钮。但是,如果用户删除文本,则该按钮再次变为麦克风按钮。谁能告诉我如何创建这样的按钮?

标签: androidandroid-button

解决方案


使用 aTextWatcher检测EditText的内容何时更改并执行您想要的操作。

例子:

yourEditText.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

        if (editable.length() > 0) {
            //change to send message icon
        } else {
            //change to microphone icon
        }
    }
});

对于您的按钮onClickListener,只需检查是否EditText为空。

例子:

yourButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        String text = yourEditText.getText().toString();
        if (text.isEmpty()) {
            //perform your microphone action
        } else {
            //perform your send message action
        }
    }
});

推荐阅读