[英]Multiple SeekBars listener
I have multiple seekbar on the same view :我在同一个视图上有多个搜索栏:
barheures = (SeekBar)findViewById(R.id.barheures); // make seekbar object
barheures.setOnSeekBarChangeListener(this); // set seekbar listener.
// since we are using this class as the listener the class is "this"
barminutes = (SeekBar)findViewById(R.id.barminutes);
barminutes.setOnSeekBarChangeListener(this);
And here is the listener:这是听众:
@Override
public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) {
// TODO Auto-generated method stub
Log.v("", "" + bar);
textMinutes.setText("" + progress + "Minute(s)" );
textHours.setText("" + progress + "Heure(s)" );
}
I wanna make something different if the first OR the second bar have moved into the same listener (is it the good practice?), but how to??如果第一个或第二个小节移动到同一个监听器中,我想做出一些不同的事情(这是一个好习惯吗?),但是怎么做?? Here I have the app that don't do what I want在这里,我的应用程序无法执行我想要的操作
Now then you have 2 seekbars with the following ids:现在,您有 2 个具有以下 ID 的搜索栏:
Now in the onProgressChanged(SeekBar bar, int progress, boolean fromUser) method, Do the following:现在在 onProgressChanged(SeekBar bar, int progress, boolean fromUser) 方法中,执行以下操作:
@Override
public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) {
// TODO Auto-generated method stub
Log.v("", "" + bar);
switch (bar.getId()) {
case R.id.barheures:
textHours.setText("" + progress + "Heure(s)");
break;
case R.id.barminutes:
textMinutes.setText("" + progress + "Minute(s)");
break;
}
}
Instead of comparing resource ids, you can also just check the SeekBar object for equality.除了比较资源 ID,您还可以只检查 SeekBar 对象是否相等。 Example:例子:
private SeekBar bar1;
private SeekBar bar2;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
...
bar1 = (SeekBar) findViewById(R.id.bar1);
bar2 = (SeekBar) findViewById(R.id.bar2);
...
}
@Override
public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
{
if (bar.equals(bar1))
{
// do something
}
else if (bar.equals(bar2))
{
// do something else
}
}
I prefer doing it this way because then you only ever reference the id of each SeekBar resource once (in your onCreate
).我更喜欢这样做,因为那样你只会引用每个 SeekBar 资源的 id 一次(在你的onCreate
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.