我正在使用 SeekBar 做一些事情。
onProgressChanged() 将被正确触发,如下所示。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SeekBar sk=(SeekBar) findViewById (R.id.seekBar1);
sk.setProgress(50);
sk.setOnSeekBarChangeListener
(
new OnSeekBarChangeListener()
{
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
// Doing something correctly.
}
}
);
}
但是,如果我使用 LayoutInflater,SeekBar 无法触发 onProgressChanged() 事件,如下所示。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.main, null);
setContentView(R.layout.main);
SeekBar sk=(SeekBar) layout.findViewById (R.id.seekBar1);
sk.setProgress(50);
sk.setOnSeekBarChangeListener
(
new OnSeekBarChangeListener()
{
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
// Could not trigger event.
}
}
);
}
我不确定是否以错误的方式使用 LayoutInflater,所以我尝试了另一种方法来获取 inflate 对象。
Context mContext = MyActivity.this;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
还是不行。所以,我的问题是,如果我使用 LayoutInflater 获取 SeekBar 对象,为什么 SeekBar 无法触发事件。