2015-10-13 66 views
0

我使用editext进行聊天。一切都很好。但是当我输入单引号,那么它显示的',当我输入双引号,然后显示的",所以我想限制这两个字符。如何在edittext中限制单引号和双引号

<EditText 
     android:id="@+id/editText_add_chat_afcdl" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:padding="13dp" 
     android:textColor="@android:color/black" 
     android:inputType="textMultiLine" 
     android:maxLength="256" 
     android:textSize="18sp" 
     android:maxLines="5" 
     android:layout_centerVertical="true" 
     android:hint="@string/chatMsgHint" 
     android:textColorHint="#C3C3C8" 
     android:layout_toLeftOf="@+id/button_add_afcdl" 
     android:background="@drawable/rounded_edittext" /> 
+0

的可能的复制[如何限制编辑文字到一些特定的字符在Android?](http://stackoverflow.com/questions/17113942/how-to-restrict-edittext-to -some-particular-characters-in-android) – Sufian

回答

2

使用自定义输入过滤器,然后将其设置为editText。

InputFilter filter = new InputFilter() { 
    public CharSequence filter(CharSequence source, int start, int end, 
      Spanned dest, int dstart, int dend) { 
     char[] chars = {'\'','"'}; 
     for (int i = start; i < end; i++) { 
      if (new String(chars).contains(String.valueOf(source.charAt(index))) { 
       return ""; 
      } 
     } 
     return null; 
    } 
}; 
edit.setFilters(new InputFilter[] { filter }); 
+0

如何查找索引? –

+0

使用我而不是索引。 – Ritesh

2

避免双引号和单引号使用下面的代码

public static InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned destination, int dstart, int dend) { String blockCharacterSet = "'\""; if (source != null && blockCharacterSet.contains(("" + source))) { return ""; } return null; } };

您可以设置过滤器来您编辑文本就像下面

editText.setFilters(new InputFilter[] { filter });

+0

完美...适合我 –