2017-05-30 32 views
-2

我使用我的Android應用程序中的開關打開/關閉藍牙。我打開藍牙並返回MainActivity。但是當我切換回myBluetooth Activity時,Switch將自身切換到默認狀態,即OFF。 如何保存開關的狀態,以便即使在活動之間切換後,它仍保持在以前的狀態?我正在使用的代碼來開始新的活動。在活動之間切換時保存「開關」狀態(ON或OFF)

backb.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent backb= new Intent(Bedroom.this, home.class); 
      startActivity(backb); 
     } 
    }); 
+1

請發送驗證碼 –

+0

@Mr。 Ajay閱讀我的答案......... –

回答

0

您應該使用SharePreference瘡一些關鍵的,當ON/OFF開關

更多的信息價值單擊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 
  • 在這個你應該使用editor.putBoolean(「key」,false/true);

我希望這將有助於您瞭解使用sharepreference

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 

example link

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"); 
    } 
    

因此,當活動狀態發生變化時,它會保存變量的最後值並在恢復時必要。

  • 數據可以更持久地使用SharedPreferencesSQLite DB被保存。

  • 您可以使用SharedPreferences來保存您的數據。

    1. 首先,在第二活動創造SharedPreferences:

      SharedPreferences pref = getApplicationContext() 
          .getSharedPreferences("MyPreferences", MODE_PRIVATE); 
      Editor editor = pref.edit(); 
      
    2. 那麼你的數據存儲爲KEY/VALUE對:

      editor.putString("key", "string value"); 
      editor.commit(); 
      
    3. 然後得到的第一個活動的數據:

      SharedPreferences sharedPreferences = 
          PreferenceManager.getDefaultSharedPreferences(this); 
      String value = mSharedPreference.getString("key", ""); 
      

Android Example上有一些SharedPreferences基礎知識可以參考。

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