我做过这样的事情。我收到的是真实的'来自第二个活动的值,当我收到它时,它应该将我的开关按钮状态改为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();
}
答案 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
我想你忘记了startActivity()
:
Intent intent = new Intent(this, AalarmActivity.class);
intent.putExtra("toggleBtn", true);
startActivity(intent);
finish();