从EditText获取文本而不使用按钮

时间:2016-11-18 11:36:14

标签: android android-edittext gettext

在我的应用程序中,我在未选中CheckBox时动态创建EditText,并且我想获取用户在其中写入的文本。问题是我不知道在哪里写getText()。toString()。我调试了这个,我看到当创建EditText时,getText()。toString()立即执行并始终返回"" 。我也在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();

2 个答案:

答案 0 :(得分:0)

你试过这个:

         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
    }

答案 1 :(得分:0)

因此,您不希望在用户输入时使用文本。

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