Android用のキーボードを設計しています。MainActivityにView.OnTouchListenerを実装することで、onCreateメソッドでボタンを定義するこの巧妙な方法を学びました。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
defineButtons();
keyC.setOnTouchListener(this);
//etc..
}
その後:
private void defineButtons()
{
keyC = (Button) findViewById(R.id.c);
//etc..
}
次に、このメソッドでボタンに触れたときに何が起こるかを定義します。
public boolean onTouch(View view, MotionEvent motion)
{
int note = 0;
switch(view.getId())
{
case R.id.c: /** Note C*/
{
note = 60 + transposeOctave;
motionTracker(view, motion, note);
}
break;
//etc...
}
この最後の方法は、ボタンごとに個別に繰り返す必要がありますが、これはちょっと醜いようです。Idを使用して数値を返し、音価を変更することはできますか?
乾杯