Как изменить картинку при вводе ключа в Android Studio? - PullRequest
1 голос
/ 19 июня 2019

У меня есть клавиатура Bluetooth, и когда телефон получает с этой клавиатуры определенный символ (например, «A»), я хотел бы изменить изображение в приложении.

Я новичок в Android Studio и не понимаю большую часть синтаксиса, поэтому я пытался следовать инструкциям, чтобы сделать это. Мне удалось изменить изображение на основе нажатия кнопки (buttonclick ()), как показано в моем коде, но я не знаю, как получать и обрабатывать ключи.

В соответствии с руководством функция onKey () должна, по крайней мере, отображать то, что было введено в текстовое поле при вводе ENTER, но пока что ничего не делает в моем приложении.

public class MainActivity extends AppCompatActivity implements View.OnKeyListener {

    private static ImageView imgview; //Image I want to change
    private static Button buttonsbm;  //Button to change image (test)
    private int current_image;        
    int[] images = {R.drawable.circle1, R.drawable.circle2, 
             R.drawable.circle3, R.drawable.circle4, R.drawable.circle5, 
            R.drawable.circle6,
            R.drawable.circle7, R.drawable.circle8};     //Array of images


    EditText text;    //text field

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = (EditText)findViewById(R.id.editText2);
        text.setOnKeyListener(this);


        //buttonclick();



    }

    //FUNCTION TO CHANGE IMAGE BASED ON BUTTON CLICK
    public void buttonclick() {

        imgview = (ImageView) findViewById(R.id.imageView);
        buttonsbm = (Button) findViewById(R.id.button);
        buttonsbm.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        current_image++;
                        current_image = current_image % images.length;
                        imgview.setImageResource(images[current_image]);
                    }
                }


        );
    }


    //FUNCTION TO CHANGE PICTURE BASED ON KEY INPUTTED (does nothing now)
    @Override
    public boolean onKey(View v, int key, KeyEvent keyEvent) {
        imgview = (ImageView) findViewById(R.id.imageView);


        if (key == KeyEvent.KEYCODE_ENTER) {
            imgview.setImageResource(images[0]);
            Toast.makeText(this, text.getText(), Toast.LENGTH_SHORT);
            return true;
        } else if (key == KeyEvent.KEYCODE_W) {
            imgview.setImageResource(images[1]);
        } else if (key == KeyEvent.KEYCODE_E) {
            imgview.setImageResource(images[2]);
        } else if (key == KeyEvent.KEYCODE_R) {
            imgview.setImageResource(images[3]);

        }

        return false;
    }
}

Функция onKey () сейчас ничего не делает. Как мне сделать так, чтобы картинка менялась, когда телефон получает символ с моей клавиатуры bluetooth?

...