我想知道android SeekBars OnSeekBarChangeListener的行为.特别是onProgressChanged方法是否仅针对搜索栏上的第一次和最后一次触摸进行通知?
我正在尝试刷新应该显示SeekBar当前进度的TextView.但TextView只是在第一次触摸和最后一次触摸时更新.调试这证实了我的假设,这个方法被调用两次:(我想要的是TextView显示SeekBar中的每个进度变化.
简而言之:我正在寻找一种可能获得进步监听器的可能性.
小智 81
我希望这能帮到您:
final TextView t1=new TextView(this);
t1.setText("Hello Android");
final SeekBar sk=(SeekBar) findViewById(R.id.seekBar1);
sk.setOnSeekBarChangeListener(new 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
t1.setTextSize(progress);
Toast.makeText(getApplicationContext(), String.valueOf(progress),Toast.LENGTH_LONG).show();
}
});
Run Code Online (Sandbox Code Playgroud)
Gal*_*e33 12
应该在每次改变进度时调用onProgressChanged(),而不仅仅是第一次和最后一次触摸(这就是为什么你有onStartTrackingTouch()和onStopTrackingTouch()方法).
确保您的SeekBar具有多于1个值,也就是说您的MAX> = 3.
在你的onCreate:
yourSeekBar=(SeekBar) findViewById(R.id.yourSeekBar);
yourSeekBar.setOnSeekBarChangeListener(new yourListener());
Run Code Online (Sandbox Code Playgroud)
你的听众:
private class yourListener implements SeekBar.OnSeekBarChangeListener {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// Log the progress
Log.d("DEBUG", "Progress is: "+progress);
//set textView's text
yourTextView.setText(""+progress);
}
public void onStartTrackingTouch(SeekBar seekBar) {}
public void onStopTrackingTouch(SeekBar seekBar) {}
}
Run Code Online (Sandbox Code Playgroud)
请分享一些代码和日志结果以获得更多帮助.
每次移动光标时,都会调用onProgressChanged。
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
textView.setText(String.valueOf(new Integer(progress)));
}
Run Code Online (Sandbox Code Playgroud)
因此,textView应该显示进度,并在移动搜索栏时始终更改。
| 归档时间: |
|
| 查看次数: |
110080 次 |
| 最近记录: |