2013-07-01 3 views
0

동시에 두 개의 seekBar를 처리하려고합니다. 많은 예제를 살펴 보았지만 버튼이나 이와 유사한 뷰를 처리하도록 설계되었습니다. 이 예제가 내 seekBar 프로젝트에서 설명하는 것과 동일한 프로세스를 수행하려고하면 작동하지 않습니다.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

: 나는 두 번째 SeekBar를 을 누르면 내가 다른 특정 값을 가진 최초의 SeekBar를, 그리고 다른 텍스트 뷰를 누를 때 특정 값을 가진 텍스트 뷰를 표시하려면이 내 코드입니다 그런 다음, 누군가가 내게 설명하기를 바란다. 내 실수는 무엇인가, 또는 나는 실종되었다. 도와 줘서 고맙습니다 !! – 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