У меня есть клавиатура 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?