-2

当我在 EditText 中输入“sa”时,只需要 s。我怎样才能传递我的整个文本?假设我想将文本与字符串“sa”进行比较,如何从edittext中获取整个文本?

e = (EditText) findViewById(R.id.selection);
                  //edittext watcher
                e.addTextChangedListener(new TextWatcher() {

                    public void onTextChanged(CharSequence s, int start, int before,
                            int count) {
                                //getting edittext
                        String s1 =s.toString();

                        System.out.println("edittext :" + s1);
                        // compare edittext string woth arraylist
                        if (s1.length() >=1) {

 //taking stringbuilder to add list items                           StringBuilder sb = new StringBuilder();
                            for(inti=0;i<orginalarrayelements.length;i++)
                            {
        //compare edittext with arraylist with region matches                       if(orginalarrayelements[i].regionMatches(true, 0, s1, 0, s1.length())){
                                        sb.append(orginalarrayelements[i] +",");
                                        System.out.println("modified array: " + sb);
                            }

}

4

1 回答 1

1

我认为您正试图从您的 中获取全文EditText,对吗?

OnTextChanged每次您的文本更改时都会调用它,因此如果您删除了一个字母,它将始终只包含一个字母或 null。

如果您想获取全文,请e.getText().toString();在您的OnTextChangedOnClick按钮或其他任何地方调用。

顺便说一句:重新考虑你的名字:“e”不是你应该使用的名字。采取类似“ editText”,“ myEditText”,“ usernameEditText”,...

于 2013-07-10T07:52:22.573 回答