프로그래스바는 현재 위치를 보여주기만 하지만 시크바는 사용자가 직접 값을 조정할 수 있다.
사용자가 시크바를 조정하면 이때마다 OnSeekBarChangedListener 인터페이스의 다음 메서드가 호출된다.
void onStartTrackingTouch(SeekBar seekBar)
void onStopTrackingTouch(SeekBar seekBar)
void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
윗 메소드중에 가장 실용적인 것은 onProgressChaged인데 여기서 변경된 위치에 맞게 대상 값을 조정한다.
progress 인수는 현재 위치값이며 fromUser인수는 사용자가 직접 드래그해서 변한 것인지 아니면 코드에서 값을 변경한 것인지 알려준다.
다음은 xml파일입니다.
activity_test_seekbar.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:padding="10dip"
/>
<TextView
android:id="@+id/volume"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Now Volume : 50"
/>
</LinearLayout>
자바파일입니다.
TestSeekBar.java
package com.example.ch13_seekbar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;
public class TestSeekbar extends Activity {
SeekBar mSeekBar;
TextView mVolume;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_seekbar);
//xml와 객체를 연결해준다.
mSeekBar = (SeekBar)findViewById(R.id.seekbar);
mVolume = (TextView)findViewById(R.id.volume);
//시크바에 리스너를 등록한다.
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
//시크바를 사용자가 조정하면 이 메소드가 호출된다.
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
mVolume.setText("Now Volume : " + progress);
}
});
}
}
실행화면
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - 날짜 대화상자 시간 대화상자 만들기 (0) | 2015.08.09 |
---|---|
안드로이드 - DatePicker 위젯을 이용한 날짜 입력 받기 (1) | 2015.08.08 |
안드로이드 - 시간을 더욱 세련되게 표현하는 시계 위젯 만들기 (0) | 2015.08.08 |
안드로이드 - 날짜 시간 나타내기 (0) | 2015.08.08 |
안드로이다 - 실행 중에 메뉴를 교체하기 (0) | 2015.08.08 |
안드로이드 - 실행 중에 메뉴 편집 (0) | 2015.08.08 |
안드로이드 - 프로그래스바(ProgressBar) 만들기 (0) | 2015.08.07 |
안드로이드 - 버튼에 팝업메뉴 만들기 (0) | 2015.08.02 |