2015-01-13 2 views
1

i интегрирован MultiAutoCompleteTextView в мое приложение для словаря теперь, после его интеграции.MultiAutoCompleteTextView строки, получающие "," после выбора строки из раскрывающегося списка?

я получил проблему так, как показано на втором скриншоте ...

так что теперь я не хочу, чтобы «»

как показано на второй снимки экрана, после!

я получаю "" как этот

!,

плз помочь мне поблагодарить д

enter image description here

enter image description here

String[] str={"!","\"","#","$","$1","%","'","+",",","/"}; 

      MultiAutoCompleteTextView mt=(MultiAutoCompleteTextView)findViewById(R.id.searchEditText); 

      mt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 

      ArrayAdapter<String> adp=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,str); 

      mt.setThreshold(1); 
      mt.setAdapter(adp); 

ответ

1

Запятая исходит из CommaTokenizer() называется в этой линии mt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

Чтобы удалить запятую вам нужно реализовать свой собственный Tokenizer. Это пример:

public class SpaceTokenizer implements Tokenizer { 

public int findTokenStart(CharSequence text, int cursor) { 
int i = cursor; 

while (i > 0 && text.charAt(i - 1) != ' ') { 
    i--; 
} 
while (i < cursor && text.charAt(i) == ' ') { 
    i++; 
} 

return i; 
} 

public int findTokenEnd(CharSequence text, int cursor) { 
int i = cursor; 
int len = text.length(); 

while (i < len) { 
    if (text.charAt(i) == ' ') { 
     return i; 
    } else { 
     i++; 
    } 
} 

return len; 
} 

public CharSequence terminateToken(CharSequence text) { 
int i = text.length(); 

while (i > 0 && text.charAt(i - 1) == ' ') { 
    i--; 
} 

if (i > 0 && text.charAt(i - 1) == ' ') { 
    return text; 
} else { 
    if (text instanceof Spanned) { 
     SpannableString sp = new SpannableString(text + " "); 
     TextUtils.copySpansFrom((Spanned) text, 0, text.length(), 
       Object.class, sp, 0); 
     return sp; 
    } else { 
     return text + " "; 
    } 
} 
} 
} 

PS: Я скопировал код из this answer

+0

thankq для этого ответа, он работает для меня, но я не нужно пространство и после этой строки. – android

+0

вы можете просто заменить пробел пустой строкой ("" to "") – Rami

+0

ok thankq @Rami это работает для меня. – android