Есть ли лучший способ сделать код, который я сделал? массив символов, списки ключей

Для тех, кто пока не нашел решения. У меня такая же проблема. Я попытался переработать растровое изображение в onPause следующим образом:

final Drawable drawable = mImageView.getDrawable();
if (drawable instanceof BitmapDrawable) {
    BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
    Bitmap bitmap = bitmapDrawable.getBitmap();
    bitmap.recycle();
}

if (preView != null && !preView.isRecycled()) {
    preView.recycle();
    preView = null;
}

После возвращения я получил исключение: «Canvas: пытается использовать переработанное растровое изображение»

Решение для меня: Мне пришлось добавить следующие

mImageView.setImageBitmap(null);
0
задан David Kordek 20 February 2019 в 21:13
поделиться

2 ответа

Регулярное выражение для любого символа в нижнем регистре будет меньше кода, если ваше определение лучше меньше строк.

private String _regex = "[a-z]";
private Pattern _lowercaseCharacterPattern = Pattern.compile(_regex);

@Override
public void keyPressed(KeyEvent e) {
    char c = e.getKeyChar();
    if( _lowercaseCharacterPattern.matcher(String.valueOf(c) ).matches() )
        JOptionPane.showMessageDialog(panel, "Error: "+c, " cannot be used", JOptionPane.WARNING_MESSAGE);
}
0
ответ дан Evan 20 February 2019 в 21:13
поделиться

Проще говоря, вы можете использовать .contains() для String «правильных» символов.

Что-то вроде:

    private final String letters = "abcdefghijklmnopqrstuvwxyz";

    @Override
    public void keyPressed(KeyEvent e) {
        char c = e.getKeyChar();            

        // if the character entered is not the list of valid inputs, warn user 
        if( !letters.contains(Character.toString(c)) ){
            JOptionPane.showMessageDialog(panel, "Error: "+c, " cannot be used", JOptionPane.WARNING_MESSAGE);
        }
    }
0
ответ дан ochi 20 February 2019 в 21:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: