0

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

4

0 に答える 0