Android:inflater和setContentView无法触发搜索栏事件

时间:2014-06-05 16:05:24

标签: android layout-inflater setcontentview

我正在使用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,所以我尝试了另一种方法来获取膨胀对象。

Context mContext = MyActivity.this;  
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);   

还是不行。 所以,我的问题是,如果我使用LayoutInflater获取SeekBar对象,SeekBar无法触发事件。

0 个答案:

没有答案