2017-04-27 13 views
0

Googleでキーボードの絵文字ショートカットを追加したことに気づきました。(おそらく、ずっと前にそこにいたでしょう:))私は、キーボードからemojisのショートカットを無効にしようとしていると私は自分のアプリで追加するアイコンからこれらの絵文字を召喚する。それは可能ですか?EditTextのemojisをオーバーライドして、これらのemojisを私のアンドロイドアプリから召喚してください。

例: Facebook Messengerアプリには、絵文字のための独立したアイコンボタンがあります。私は独立したボタンを使用していますが、既に提供されているemojisを使用しています。

これまでは、クリック可能な独自のimageViewアイコンを追加しましたが、このアイコンをGoogleのemojisを呼び出すようにしています。

答えて

1

まず、これは私が、私はこれが私のスレッドを開く前に既に掲載見キーボード

public class EmojiExcludeEditText extends EditText { 
    public EmojiExcludeEditText(Context context) { 
     super(context); 
     init(); 
    } 

    public EmojiExcludeEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    public EmojiExcludeEditText(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
     init(); 
    } 

    private void init() { 
     setFilters(new InputFilter[]{emojiExcludeFilter}); 
    } 

    @Override 
    public void setFilters(InputFilter[] filters) { 
     if (filters.length != 0) { //if length == 0 it will here return when init() is called 
      boolean add = true; 
      for (InputFilter inputFilter : filters) { 
       if (inputFilter == emojiExcludeFilter) { 
        add = false; 
        break; 
       } 
      } 
      if (add) { 
       filters = Arrays.copyOf(filters, filters.length + 1); 
       filters[filters.length - 1] = emojiExcludeFilter; 
      } 
     } 
     super.setFilters(filters); 
    } 

    private EmojiExcludeFilter emojiExcludeFilter = new EmojiExcludeFilter(); 

    private class EmojiExcludeFilter implements 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)); 
       if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) { 
        return ""; 
       } 
      } 
      return null; 
     } 
    } 
} 
+0

に絵文字を無効にする方法ですEDITTEXT

android:inputType="textMultiLine" 

にこの属性を追加します。同じEmojisをアプリ内の独立したアイコンやボタンから呼び出すことはできますか? –

関連する問題