如何从另一个活动更改切换/切换按钮状态

时间:2015-12-08 16:49:38

标签: java android

我做过这样的事情。我收到的是真实的'来自第二个活动的值,当我收到它时,它应该将我的开关按钮状态改为OFF。我们需要手动切换到ON。我认为它应该有用,但它没有

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        alarmTimePicker = (TimePicker) findViewById(R.id.alarmTimePicker);
        //ToggleButton alarmToggle = (ToggleButton) findViewById(R.id.alarmToggle);

        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

        final Switch sswitch = (Switch) findViewById(R.id.alarmToggle);
        sswitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean val) {
                val = getIntent().getBooleanExtra("toggleBtn", false);
                if(val)
                 {
                    sswitch.setChecked(false);
                }

            }
        });
    }

在第二个活动中,我说我将该值发送给第一个

 public void backtomain(View view)
    {
        Intent intent = new Intent(this, AalarmActivity.class);
        intent.putExtra("toggleBtn", true);
        finish();

    }

1 个答案:

答案 0 :(得分:0)

你可以这样做,因为你问第一个isChecked是否,{:1}}

((ToggleButton)view).isChecked();

然后在你的Intent中输入:

intent.putExtras("toggleBtn", ((ToggleButton)view).isChecked());

修改

根据您的代码,当Intent为真时,它只会生成ToggleButton,不是吗?然后,如果它进入if,则意味着ToggleButton已启用,因此您可以通过((ToggleButton)view).isChecked()而不是putExtras传递true,而是制作else并将其放入false

编辑2

我想你忘记了startActivity()

Intent intent = new Intent(this, AalarmActivity.class);
intent.putExtra("toggleBtn", true);
startActivity(intent);
finish();
相关问题