微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Android中获得切换值?

我在Main Activity中放置了一个switch小部件,我还有第二个扩展broadcastReceiver的活动.我想在第二个活动中获得switch小部件的布尔状态.

如果我输入

Switch s = (Switch) findViewById(R.id.switch1);

它表示对于SecondActivity类型未定义findViewById.问题是Android不允许我在扩展broadcast Receiver的类中获得switch的值.

我想知道开关的状态,即开关是打开还是关闭,但是在第二次活动中.我怎样才能实现它?

解决方法

从Activity调用findViewById()只能访问作为该Activity布局一部分的Views.您无法使用它来搜索任何其他活动的布局.

根据您的应用程序设计,您可以使用以下方法之一:

1)通过Intent extra将Switch的值发送到SecondActivity

在活动中:

Intent mIntent = new Intent(this,SecondActivity.class);
mIntent.putExtra("switch",s.isChecked());
startActivity(mIntent);

在SecondActivity中:

boolean isChecked = getIntent().getBooleanExtra("switch",false);

2)将值保存到更改时的首选项,并在SecondActivity中读取首选项

在活动中:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor e = settings.edit();
e.putBoolean("switch",s.isChecked());
e.commit();

在SecondActivity中:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
boolean isChecked = settings.getBoolean("switch",false);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐