Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中实现OnCheckedChanged_Java_Android_Events_Oncheckedchanged - Fatal编程技术网

在Java中实现OnCheckedChanged

在Java中实现OnCheckedChanged,java,android,events,oncheckedchanged,Java,Android,Events,Oncheckedchanged,基本上在一个片段中,我有3个切换按钮,因此我决定我的界面应该实现OnCheckedChange。这些按钮是:date按钮、time按钮和now按钮 工作流程如下所示: public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { switch (buttonView.getId()) { case R.id.select_date_button: {

基本上在一个片段中,我有3个切换按钮,因此我决定我的界面应该实现OnCheckedChange。这些按钮是:
date
按钮、
time
按钮和
now
按钮

工作流程如下所示:

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        switch (buttonView.getId()) {
        case R.id.select_date_button: {
            DialogFragment datePicker = new DatePickerFragment();
            datePicker.setTargetFragment(CheckinNow.this, 100);
            datePicker.show(getActivity().getSupportFragmentManager(), "datePicker");
            date_image.setBackgroundResource(R.drawable.btn_calendar_active);

            break;
        }

        case R.id.select_time_button: {
            DialogFragment timePicker = new TimePickerFragment();
            timePicker.setTargetFragment(CheckinNow.this, 100);
            timePicker.show(getActivity().getSupportFragmentManager(), "timePicker");
            time_image.setBackgroundResource(R.drawable.btn_time_active);

        }

        case R.id.now_button: {
            now_button.setBackgroundResource(R.drawable.btn_now_with_text_active);
            checkin_button_done.setBackgroundResource(R.drawable.btn_checkmark_active);
            time_image.setBackgroundResource(R.drawable.btn_time);
            date_image.setBackgroundResource(R.drawable.btn_calendar);

        }

        default:
            break;
    }
按下日期,日期图像变为激活状态,检查是否按下时间,检查标记是否激活 按下
时间
,日期图像变为激活状态,检查是否按下
日期
,检查
标记
是否激活

现在
被按下,
日期
时间
将不会激活,但复选标记将激活。我所做的工作如下:

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        switch (buttonView.getId()) {
        case R.id.select_date_button: {
            DialogFragment datePicker = new DatePickerFragment();
            datePicker.setTargetFragment(CheckinNow.this, 100);
            datePicker.show(getActivity().getSupportFragmentManager(), "datePicker");
            date_image.setBackgroundResource(R.drawable.btn_calendar_active);

            break;
        }

        case R.id.select_time_button: {
            DialogFragment timePicker = new TimePickerFragment();
            timePicker.setTargetFragment(CheckinNow.this, 100);
            timePicker.show(getActivity().getSupportFragmentManager(), "timePicker");
            time_image.setBackgroundResource(R.drawable.btn_time_active);

        }

        case R.id.now_button: {
            now_button.setBackgroundResource(R.drawable.btn_now_with_text_active);
            checkin_button_done.setBackgroundResource(R.drawable.btn_checkmark_active);
            time_image.setBackgroundResource(R.drawable.btn_time);
            date_image.setBackgroundResource(R.drawable.btn_calendar);

        }

        default:
            break;
    }
我的问题是,我如何检查何时按下了
日期
,何时按下了
时间
,或者反过来


当然,我可以为每个按钮单独设置一个
OnCheckedChanged
,但如果可能的话,我更喜欢这个解决方案。

ToggleButton dateButton = (ToggleButton) findViewById(R.id.select_date_button);
然后,如果您需要检查是否有一个按钮被选中,只需拨打电话

if (dateButton.isChecked()) {
//Do some stuff
}
希望这有帮助

您可以使用getActivity()访问活动的父方法。片段彼此看不见,因此在活动中使用一些布尔值和方法应该允许它们安全地交互。