Ich möchte feststellen, ob meine EditText
smilie (Emoticons) enthält oder nicht. Aber ich habe keine Ahnung, wie man sie erkennt.So erkennen Sie Emoticons in EditText in Android
Antwort
Wenn von simile
Sie auf die Redensart beziehen, können Sie .getText()
verwenden und die String
Methode .contains(String)
zu überprüfen, ob es die Strings „wie“ oder „als“ enthält.
Snippet:
EditText myEditText = (EditText)findViewById(R.id.myEditText);
String input = myEditText.getText();
if(input.contains("like") || input.contains("as"))
{
//code
}
by similes Ich meine Emoticons. –
Ich denke du meinst Smilies. Ein Gleichnis ist etwas ganz anderes – Kuffs
Ich bedauere es extrem, aber jetzt korrigierte ich die Frage –
Es hängt davon ab, wie Sie simleys in Ihrem EditText umsetzen. Wenn Sie Motive verwenden, können Sie dies mit einem Trick tun. Sie können eine Bedingung festlegen, wann immer Sie eine einfache hinzufügen können Sie eine Art von Schlüsselwort zu ArrayList hinzufügen und wenn Smiley entfernt wird, können Sie dieses Schlüsselwort aus ArrayList entfernen. Und schließlich können Sie diese Liste überprüfen, ob dieses simley hinzugefügt wird oder nicht, indem Sie die arrayList-Elemente verarbeiten.
für ex ...
if(Smiley_added){
arraylist.add(smiley_code,i);
}
if(simley_removed){
arraylist.remove(smileycode,i);
}
if(arraylist.get(i).equals("smileyCode")){
do this....
}
Ich möchte erkennen, ob Emoticons vorhanden sind oder nicht, und dann beim Senden an den Server möchte ich sie entfernen, so groß wie die Karte sein kann Gleichnisse und auch diese Methode wird hardcoded sein, wenn ich für jede Emoticons durch das Erstellen einer Karte von Emoticons gegen Code überprüfen. –
Emoji-Zeichen zu deaktivieren, wenn auf der Tastatur eingeben ich den folgenden Filter verwenden:
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
int type = Character.getType(source.charAt(i));
//System.out.println("Type : " + type);
if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {
return "";
}
}
return null;
}
};
mMessageEditText.setFilters(new InputFilter[]{filter});
Wenn Sie nur erkennen, wenn EditText jedes Emoji-Zeichen enthält, die Sie kann dieses Prinzip (Character.getType()
) in android.text.TextWatcher
Schnittstelle Implementierung (in onTextChange()
oder afterTextChanged()
Methode) oder z Verwenden Sie einfach for
Zyklus auf mMessageEditText.getText()
(gibt CharSequence-Klasse) mit charAt()
Methode zurück.
das ist wirklich hilfe voll. –
Aber wenn der Filter verwendet wird, gibt es einen anderen Fehler, der vorhanden sein wird. Geben Sie zuerst etwas ein, geben Sie dann Emoji ein, drücken Sie dann die Rücktaste, 2 Zeichen werden gelöscht anstelle von 1 – HendraWD
Schön, aber leider schließt dies auch viele andere Sonderzeichen wie © ® ™, chinesische Symbole und sogar das taktile Alphabet aus. – 0101100101
von similes Ich meine Emoticons. –
Haben Sie versucht, Emoticons im edittext einzugeben und zu sehen, welchen Text es enthält? EditText.getText() –