无需按钮即可从 EditText 获取文本

Getting text from EditText without a button

在我的应用程序中,我在未选中 CheckBox 时动态创建一个 EditText,并且我想获取用户在其中写入的文本。问题是我不知道在哪里写 getText().toString()。我已经对此进行了调试,我看到当创建 EditText 时, getText().toString() 会立即执行并且 returns 总是 "" 。我也尝试过 EditText 中的 focusChange 但没有成功。感谢您的帮助!

        final EditText editText = new EditText(this);
        TableRow.LayoutParams params = new TableRow.LayoutParams(getPx(100) , ViewGroup.LayoutParams.WRAP_CONTENT);
        params.setMargins(0 ,0 ,getPx(100) ,0);
        tr.addView(editText);
        date = editText.getText().toString();

你试过这个吗:

         editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if(isValidDate()) {
                   date = s.toString();
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

    ...

    private boolean isValidDate() {
       // implement your logic here
    }

所以你不想在用户输入时获取文本。

editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
            String typedStringIs=s.toString();
            //Here your code . It is dynamaclly changing . if anything you write will be here
            }
        });