您的位置:首页 > 其它

控件——SeekBar/RatingBar

2015-08-02 11:20 507 查看


SeekBarChangeListener 监听器的三个方法

SeekBar:



<SeekBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/seekBarId" />


public class MainActivity extends AppCompatActivity {
private SeekBar seekBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar = (SeekBar)findViewById(R.id.seekBarId);
seekBar.setMax(200);
seekBar.setProgress(100);
seekBar.setSecondaryProgress(150);
SeekBarListener seekBarListener = new SeekBarListener();
seekBar.setOnSeekBarChangeListener(seekBarListener);

}

class SeekBarListener implements SeekBar.OnSeekBarChangeListener{

/*
SeekBar seekBar 是触发了监听器的SeekBar 对象
int Progress 是当前的进度
boolean fromUser 进度变化 可能是来自用户拖动 却也可能来自本身进度变化(比如视频进度的变化)
*/
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
System.out.println("SeekBar:"+seekBar+",progress:"+progress+",fromUser"+fromUser);
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
System.out.println("OnStart");
}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
System.out.println("onStop");
}
}


RatingBar:



<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingBarId"
android:numStars="4"
android:stepSize="0.5"/>


public class MainActivity extends AppCompatActivity {
private RatingBar ratingBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ratingBar = (RatingBar)findViewById(R.id.ratingBarId);
RatingBarListener ratingBarListener = new RatingBarListener();
ratingBar.setOnRatingBarChangeListener(ratingBarListener);
}

class RatingBarListener implements RatingBar.OnRatingBarChangeListener{
/*
RatingBar ratingBar 表示该监听器绑定且状态改变的 RatingBar对象
float rating 表示当前的值
boolean fromUser 表示是否来自用户(设置按钮调用setRating()改变rating 但并非来自User 所以fromUser = false)
*/
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
System.out.println("RatingBar:"+ratingBar.getId()+",rating:"+rating+",fromeUser:"+fromUser);
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: