2015-02-23 2 views
7

Как удалить повторяющиеся ключи, предварительный просмотр пользовательской клавиатуры Android. Я использовал следующий метод для удаления предварительного просмотра ключей, которые я хочу. Но этот метод не работает для повторяющихся клавиш. (android: isRepeatable = "true") Если ключ не повторяется, работает следующий метод.Как удалить повторяющиеся ключи, предварительный просмотр пользовательской клавиатуры Android

удалить ключ XML

<Key android:codes="-5" 
     android:keyWidth="13%p" 
     android:keyIcon="@drawable/ic_key_delete_white" 
     android:keyBackground="@color/dark_key_background" 
     android:isRepeatable="true" 
     android:horizontalGap="3.5%p" 
     android:keyEdgeFlags="right"/> 

Входной метод класса обслуживания

@Override 
public void onPress(int primaryCode) { 
    if (primaryCode == -1 
      || primaryCode == -5){ 
     kv.setPreviewEnabled(false); 
    } 
} 

@Override 
public void onRelease(int primaryCode) { 
    if(primaryCode == -1 
      || primaryCode == -5){ 
     kv.setPreviewEnabled(true); 
    } 
} 

ответ

4

Revers setPreviewEnabled флаг ..

public void onCreate() { 
 

 
    mInputView.setPreviewEnabled(false); 
 

 
} 
 

 
public void onPress(int primaryCode) { 
 
    if (primaryCode==-1||primaryCode==-2||primaryCode==-5||primaryCode==-4){ 
 

 
    } else { 
 
     mInputView.setPreviewEnabled(true); 
 
    } 
 
} 
 

 
public void onRelease(int primaryCode) { 
 
    mInputView.setPreviewEnabled(false); 
 
}

0

В следующем примере мы имеем два повторяемых клавиши (пробел и Delete)

ШАГ 1: установите PreviewEnabled на "ложь" в onCreateInputView():

kv.setPreviewEnabled(false); 

ШАГ 2: добавить следующую If- другое заявление в onPress():

public void onPress(int primaryCode) 
{ 
    if (!(primaryCode==32||primaryCode==Keyboard.KEYCODE_DELETE)) 
    { 
     kv.setPreviewEnabled(true); 
    } 
    else 
    { 
     kv.setPreviewEnabled(false); 
    } 
} 

ШАГ 3: набор PreviewEnabled к "ложным" в onRelease():

public void onRelease(int primaryCode) 
{ 
    kv.setPreviewEnabled(false); 
} 
Смежные вопросы