1

SeekBarAndroidアプリには、実質的に同じこと(低音、高音、音量の設定)を行ういくつかの があります。OnSeekBarChangeListenerperの新しいローカル クラスを入力する手間を省くために、どのウィジェットがそれを呼び出しているかを判断し、適切なアクションを実行 SeekBarする単一のクラスを作成しようとしました。onStopTrackingTouch

public class mySeekBar implements SeekBar.OnSeekBarChangeListener {
    int progressChanged = 0;

    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
        progressChanged = progress;
    }

    public void onStartTrackingTouch(SeekBar seekBar) {}

    public void onStopTrackingTouch(SeekBar seekBar) {
          // i want a case statement here switched on the widget ID/name, so 
          // i can set the appropriate string s (bass, treble, volume)
        String s = "set_treble " + progressChanged;
        client.sendMessage(s);
    }

}

を呼び出しているウィジェットを特定するにはどうすればよいonStopTrackingTouchですか? または、これを行うためのよりクリーンな方法またはより良い方法はありますか?

4

1 に答える 1

1

このように 100% 判断できます。

public void onStopTrackingTouch(SeekBar seekBar) {
          // i want a case statement here switched on the widget ID/name, so 
          // i can set the appropriate string s (bass, treble, volume)
        String s = "set_treble " + progressChanged;
        client.sendMessage(s);

       switch (seekBar.getId()) {
                case R.id.seekVolume:

                    break;
                case R.id.bass:
                    break;
                case R.id.trouble:
                    break;
                default:
                    break;
                }
    }
于 2013-08-24T06:17:37.177 に答える