我在Android应用程序中使用Switch来打开/关闭蓝牙。我打开蓝牙并返回MainActivity。但当我切换回myBluetooth Activity时,Switch会将自身切换到默认状态,即OFF。 如何保存Switch的状态,这样即使在活动之间切换,它仍然保持在以前的状态?我正在使用我用来开始新活动的代码。
backb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent backb= new Intent(Bedroom.this, home.class);
startActivity(backb);
}
});
答案 0 :(得分:1)
您可以使用共享偏好
pref = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Name, n);
editor.putString(Phone, ph);
editor.putString(Email, e);
editor.commit();//save string use boolean for switch state
pref.getString("key_name", null);// to get string
答案 1 :(得分:0)
当ON / OFF开关
时,你应该使用SharePreference来解决一些键和值点击here
了解更多信息例如
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);// To OPEN Sharepreference in Private mode
SharedPreferences.Editor editor = sharedPref.edit();//create object to edit Preference
editor.putInt(getString(R.string.saved_high_score), newHighScore);//You can also put String,boolean and many more primitive type of Data type supported by java
//getString(R.string.saved_high_score)>>your Key
//also type "keyValue"
editor.commit();//at last you not forgot to commit your changes in sharepreference
我希望这有助于您了解共享偏好的使用
答案 2 :(得分:0)
嗯,首先要知道的是,有几种方法可以保留信息,这取决于具体内容和方式。
可以通过覆盖" onSaveInstanceState"来保存数据。保存数据的方法:
@Override
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
outState.putString("INFORMATION", info);
}
并覆盖" onRestoreInstanceState"加载保存数据的方法:
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
info = savedInstanceState.getString("INFORMATION");
}
因此,当活动状态发生变化时,它会保存变量'最后的值并在必要时恢复它们。
使用SharedPreferences
或SQLite DB
可以更加永久地保存数据。
您可以使用SharedPreferences
保存数据。
首先,在第二个活动上创建SharedPreferences:
SharedPreferences pref = getApplicationContext()
.getSharedPreferences("MyPreferences", MODE_PRIVATE);
Editor editor = pref.edit();
然后将您的数据存储为KEY/VALUE
对:
editor.putString("key", "string value");
editor.commit();
然后获取第一项活动的数据:
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(this);
String value = mSharedPreference.getString("key", "");
在Android Example上,您可以遵循一些SharedPreferences基础知识。
答案 3 :(得分:0)
您可以使用SharedPreferences存储布尔值:
在您的活动
中尝试此代码段YOUR_SWITCH_INSTANCE.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
SharedPreferences.Editor editor = getSharedPreferences("YOUR_PREFERENCE_NAME", Context.MODE_PRIVATE).edit();
editor.putBoolean("isChecked", isChecked);
editor.apply();
}
});
活动onCreate()
SharedPreferences pref = getSharedPreferences("YOUR_PREFERENCE_NAME", Context.MODE_PRIVATE);
YOUR_SWITCH_INSTANCE.setChecked(pref.getBoolean("isChecked", false));
希望它能帮助:)
另外,请参阅 - https://developer.android.com/training/basics/data-storage/shared-preferences.html