当我在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);
}
}
答案 0 :(得分:1)
我认为您正试图从EditText
获取全文,对吧?
OnTextChanged
,因此如果删除了一个字母,它将始终只包含一个字母或null。
如果您想获得全文,请拨打e.getText().toString();
中的OnTextChanged
,按钮上的OnClick
或其他任何地方。
顺便说一句:重新考虑一下你的名字:“e”不是你应该使用的名字。采取类似“editText
”,“myEditText
”,“usernameEditText
”,...