0

SeekBar特定のタスクを実行するものがあります。SeekBar別のタスクで別のものを追加したいと思います。

どうすればいいですか

seekbar.setOnSeekBarChangeListener(this); 

それぞれに固有SeekBar。どちらかのシークバーに触れると、同じ結果になります。

4

2 に答える 2

0

いくつかのオプションがあります:

1)一般的な方法は、匿名クラスを使用することです。このような:

curSlider.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                Log.d("slider","stop tracking");

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {


            }
        });

2)を使用する場合はthis、ロジックを使用してSeekBar、移動されているものを特定する必要があります(IDまたはオブジェクト参照を使用)。好き:

public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
    if (seekBar == mySeekBar1) {

    } else if (seekBar == mySeekBar2) {

    }

}
于 2013-03-17T23:01:14.557 に答える
-2

いいえを追加できます。シークバーとすべての人が何かをするためのサンプルコードがあります。3つのシークバーがあり、それぞれが進行状況の値を送信し、すべて一緒に画像ビューの背景として設定する色を作成します。

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;
public class MainActivity extends Activity {
    SeekBar seekBar1, seekBar2, seekBar3;
    ImageView imageView;
    public int pro1,pro2,pro3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView) this.findViewById(R.id.imageView);
        seekBar1 = (SeekBar) this.findViewById(R.id.seekBar1);
        seekBar2 = (SeekBar) this.findViewById(R.id.seekBar2);
        seekBar3 = (SeekBar) this.findViewById(R.id.seekBar3);
        seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
              pro1= progress;
                imageView.setBackgroundColor(Color.argb(200, pro1, pro2, pro3));
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
        seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
               pro2= progress;
                imageView.setBackgroundColor(Color.argb(200, pro1, pro2, pro3));
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
        seekBar3.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
               pro3=progress;
                imageView.setBackgroundColor(Color.argb(200, pro1, pro2, pro3));
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
    }
}

このyoutubehttps ://youtu.be/AM6lJnze9nA

于 2017-01-26T13:35:19.667 に答える