私は2つのボタン(到着と出発)を持っています。両方のボタンのクリックイベントでサウンドを再生し、それらの間でrequestfocusを切り替えたい..ここに問題があります
初めて到着ボタンまたは出発ボタンのいずれかをクリックすると、正常に機能します(サウンドとフォーカスの再生)が、クリックすると、たとえば、出発ボタンをクリックした後に到着すると、サウンドが再生されず、トーストも表示されません。
ここに私のコードサンプルがあります
Button btnArrival, btnDeparture, btnScan;
View cameraView;
MediaPlayer mPlayer;
boolean in, out;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnArrival = (Button) findViewById(R.id.btnArrival);
btnDeparture = (Button) findViewById(R.id.btnDeparture);
btnScan = (Button) findViewById(R.id.btnScan);
cameraView = findViewById(R.id.cameraView);
cameraView.setVisibility(View.GONE);
//cameraLayout.setEnabled(false);
btnScan.setEnabled(false);
}
public void onArrivalClicked(View v){
MediaPlayer mPlayer = MediaPlayer.create(MainActivity.this, R.raw.clickbeep);
mPlayer.start();
btnScan.setEnabled(true);
in = true;
out = false;
Toast.makeText(MainActivity.this, "Arrival", Toast.LENGTH_SHORT).show();
focusArrivalBtn();
}
private void focusArrivalBtn() {
btnArrival.setFocusableInTouchMode(true);
btnArrival.requestFocus();
}
public void onDepartureClicked(View v){
MediaPlayer mPlayer = MediaPlayer.create(MainActivity.this, R.raw.clickbeep);
mPlayer.start();
btnScan.setEnabled(true);
in = false;
out = true;
Toast.makeText(MainActivity.this, "Departure", Toast.LENGTH_SHORT).show();
focusDepartureBtn();
}
private void focusDepartureBtn() {
btnDeparture.setFocusableInTouchMode(true);
btnDeparture.requestFocus();
}