2013-03-17 90 views
0

我有一個SeekBar,它執行特定任務。我想添加另一個SeekBar與不同的任務。具有不同任務的兩個不同查找條

我怎樣才能把

seekbar.setOnSeekBarChangeListener(this); 

獨特的每個SeekBar。現在當我觸摸任何一個seekbar時,結果都是一樣的。

回答

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被移動(使用IDS或對象引用)。像:

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

    } else if (seekBar == mySeekBar2) { 

    } 

} 
+0

我不知道如何訪問onProgressChanged中的seekbar.getId()。沒有工作! – 2013-03-17 23:07:38

+0

有什麼錯誤?這聽起來像你可能試圖在我給出的第一個示例中調用getId(),而不需要這樣做。 它應該在第二個例子(不使用匿名類)上工作正常 – 2013-03-17 23:09:22

+0

我試圖使用seekbar.getId()並沒有工作。但確切如果(seekBar == mySeekBar1)工作..謝謝 – 2013-03-17 23:14:50

-2

你可以添加任何沒有。 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

+0

請粘貼一些代碼來幫助回答問題,而不是鏈接到您的一個視頻。 – Acapulco 2017-01-26 13:54:34

+0

這是我的代碼 – 2017-01-26 14:24:56

+0

我很抱歉,但我是新來的 – 2017-01-26 14:46:31

相關問題