C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.


シークバーの値の変更を処理する

シークバーのつまみを移動したとき, 以下のイベントが順に発生する.
    • OnStartTrackingTouch : つまみにタッチしたときに発生する.
    • OnProgressChanged : つまみを移動したときに発生する.
    • OnStopTrackingTouch : つまみを離したときに発生する.
  • SeekBar01.java
    • findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したシークバーのインスタンスを取得する.
    • SeekBar.OnSeekBarChangeListenerインタフェースを実装したオブジェクトをイベントリスナとして設定する.
    • SeekBar.OnSeekBarChangeListener#onStartTrackingTouch/onProgressChanged/onStopTrackingTouchメソッドにそれぞれ処理を記述する.
    • SeekBar#getProgressメソッドで, 値を取得する.
package com.moonlight_aska.android.seekbar01;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.SeekBar;

public class SeekBar01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    SeekBar seekBar = (SeekBar)findViewById(R.id.seekbar_id);
    seekBar.setMax(100);
    seekBar.setProgress(50);
    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        Log.v("SeekBar", "Stop : " + String.valueOf(seekBar.getProgress()));
      }
      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        Log.v("SeekBar", "Start : " + String.valueOf(seekBar.getProgress()));
      }
      @Override
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        // TODO Auto-generated method stub
        Log.v("SeekBar", "Changed : " + String.valueOf(progress));
      }
    });
  }
}


レイティングバーの値の変更を処理する

レイティングバーの値がタッチやキー操作で変更された場合, OnProgressChangedイベントが発生する.
  • RatingBar01.java
    • findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したレイティングバーのインスタンスを取得する.
    • RatingBar.OnRatingBarChangeListenerインタフェースを実装したオブジェクトをイベントリスナとして設定する.
    • RatingBar.OnRatingBarChangeListener#onProgressChangedメソッドに処理を記述する.
package com.moonlight_aska.android.ratingbar01;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.RatingBar;

public class RatingBar01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    RatingBar ratingBar = (RatingBar)findViewById(R.id.ratingbar_id);
    ratingBar.setNumStars(5);
    ratingBar.setRating(2.5f);

    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
      @Override
      public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
        // TODO Auto-generated method stub
        Log.v("RatingBar", "Changed : " + String.valueOf(rating));
      }
    });
  }
}

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

AD



管理人のみ編集できます