私はいくつかのことをするために 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 がイベントをトリガーできなかった理由です。