如何正确使用Checkbox ClickListener?

时间:2014-09-02 12:53:58

标签: android checkbox

当我取消选中Checkbox时,当我检查一个Checkbox并且Seekbar消失时,我想要显示一个Seekbar。

但它只适用于我,当我取消选中复选框时,通过单击复选框显示Seekbar但不会消失。

我用ClickListener尝试了它:

  

begrenzungsCheckBox =(CheckBox)findViewById(R.id.filebegrenzungCheckBox);       begrenzungsCheckBox.setOnClickListener(filebegrenzungsListenerCheckbox);

OnClickListener filebegrenzungsListenerCheckbox = new OnClickListener() {

    @Override
    public void onClick(View v) {
        TextView filebegrenzungAnzeige = (TextView) findViewById(R.id.filebegrenzungAnzeige);
        SeekBar filebegrenzungsSeekbar = (SeekBar) findViewById(R.id.filebegrenzungSeekbar);

        filebegrenzungAnzeige.setVisibility(View.VISIBLE);
        filebegrenzungsSeekbar.setVisibility(View.VISIBLE);

    }
};

,这是相应的xml布局文件:

<SeekBar
    android:id="@+id/filebegrenzungSeekbar"
    android:layout_width="wrap_content"
    android:visibility="invisible"
    android:layout_height="wrap_content" />

如何使用ClickListener来检查和取消选中Checkbox,或者有哪些替代方案可以实现?

2 个答案:

答案 0 :(得分:2)

为每个点击事件触发OnClickListener。它不关心复选框是选中还是取消选中。改为使用OnCheckedChangedListener:

*your checkbox*.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        TextView filebegrenzungAnzeige = (TextView) findViewById(R.id.filebegrenzungAnzeige);
        SeekBar filebegrenzungsSeekbar = (SeekBar) findViewById(R.id.filebegrenzungSeekbar);
        filebegrenzungAnzeige.setVisibility(isChecked ? View.VISIBLE : View.INVISIBLE);
        filebegrenzungsSeekbar.setVisibility(isChecked ? View.VISIBLE : View.INVISIBLE);
    }
});

答案 1 :(得分:0)

使用此:

if (chk1.isChecked()) {
  ShowSeekBar();
} else { 
  makeInvisibleSeekBar();
}
相关问题