我有一個SeekBar
,它執行特定任務。我想添加另一個SeekBar
與不同的任務。具有不同任務的兩個不同查找條
我怎樣才能把
seekbar.setOnSeekBarChangeListener(this);
獨特的每個SeekBar
。現在當我觸摸任何一個seekbar時,結果都是一樣的。
我有一個SeekBar
,它執行特定任務。我想添加另一個SeekBar
與不同的任務。具有不同任務的兩個不同查找條
我怎樣才能把
seekbar.setOnSeekBarChangeListener(this);
獨特的每個SeekBar
。現在當我觸摸任何一個seekbar時,結果都是一樣的。
你有幾個選擇:
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
被移動(使用IDS或對象引用)。像:
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (seekBar == mySeekBar1) {
} else if (seekBar == mySeekBar2) {
}
}
你可以添加任何沒有。 seekbars每一個的做一些事情 我有3個seekbars每一個示例代碼發送其進步價值,一起創建一個COLORE設置爲背景的ImageView
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) {
}
});
}
}
此YouTube https://youtu.be/AM6lJnze9nA
請粘貼一些代碼來幫助回答問題,而不是鏈接到您的一個視頻。 – Acapulco 2017-01-26 13:54:34
這是我的代碼 – 2017-01-26 14:24:56
我很抱歉,但我是新來的 – 2017-01-26 14:46:31
我不知道如何訪問onProgressChanged中的seekbar.getId()。沒有工作! – 2013-03-17 23:07:38
有什麼錯誤?這聽起來像你可能試圖在我給出的第一個示例中調用getId(),而不需要這樣做。 它應該在第二個例子(不使用匿名類)上工作正常 – 2013-03-17 23:09:22
我試圖使用seekbar.getId()並沒有工作。但確切如果(seekBar == mySeekBar1)工作..謝謝 – 2013-03-17 23:14:50