2013-07-01 57 views
0

我想在android中同時處理兩個seekBar。 我查了很多例子,但所有這些都是爲了處理按鈕或類似的意見。 當我嘗試執行這些示例在我的seekBar項目中描述的相同過程時,它不起作用。 我想表現出的TextView某一個值,當我按下第一個搜索欄,並與另一一定的價值等的TextView當我按下第二搜索欄 這是我的代碼:Android:同時處理兩個seekBar的多點觸控事件

public class Bluetoo extends Activity { 
private Handler handler = new Handler(); 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.botones); 
     setViews(); 
     handler.postDelayed(mUpdateUITimerTask, 100); 
} 
private final Runnable mUpdateUITimerTask = new Runnable() { 
     public void run() { 
      // do whatever you want to change here, like: 
      updateTextField(); 
     } 
}; 
private void updateTextField() { 
     mTitle=(TextView) findViewById(R.id.textView1); 
     mTitle2=(TextView) findViewById(R.id.textView2); 
     mTitle.setText(sqText1); 
     mTitle2.setText(sqText2); 

     handler.post(mUpdateUITimerTask); 
} 
private void setViews() { 
    vSeekBar1 = (VerticalSeekBar)findViewById(R.id.SeekBar01); 
    vSeekBar1.setMax(100); 
    vSeekBar1.setProgress(50); 
    vSeekBar1.setOnTouchListener(new TouchListener()); 

    vSeekBar2 = (VerticalSeekBar)findViewById(R.id.SeekBar02); 
    vSeekBar2.setMax(100); 
    vSeekBar2.setProgress(50); 
    vSeekBar2.setOnTouchListener(new TouchListener()); 
} 

private class TouchListener implements OnTouchListener { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_DOWN){ 
      switch(v.getId()) { 
       case R.id.SeekBar01: 
        sqText1=("first");//actually this part is more complex but 
            //I did not include it here 
        break; 
       case R.id.SeekBar02: 
        sqText2=("second");//actually this part is more complex but 
        //I did not include it here 
      } 
     } 
     else if(event.getAction() == MotionEvent.ACTION_POINTER_DOWN) { 
      switch(v.getId()) { 
       case R.id.SeekBar01: 
        sqText1=("second first");//actually this part is more complex but 
            //I did not include it here 
        break; 
       case R.id.SeekBar02: 
        sqText2=("second second");//actually this part is more complex but 
        //I did not include it here 
        break; 
      } 
     } 
    } 
} 

}

+0

然後,我希望有人向我解釋,我的錯誤或我錯過了什麼。非常感謝您的幫助! – Orlando

回答

0
vSeekBar1.setOnSeekBarChangeListener(this); 
vSeekBar2.setOnSeekBarChangeListener(this); 

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

    switch(v.getId()) 
    { 
    case R.id.vSeekBar1 : 
     v1 = (TextView)findViewById(R.id.v1_progress); 
     v.setProgress(progress); 
     v1.setText("text/result you want displayed for vSeekBar1"); 
     break; 
    case R.id.vSeekBar2: 
     v2= (TextView)findViewById(R.id.v2_progress); 
     v.setProgress(progress); 
     v2.setText("text/result you want displayed for vSeekBar2"); 
     break; 
    }   
} 
+0

請提供一些解釋,使其更好的答案。 – Szymon