2017-04-21 142 views
1

我有这个android应用程序,其中有使用switchcompat。我已经尝试了sharedPreferences()。我无法保存switchcompat的状态。就像当我按下时,我正在移出活动,然后它会自动下车。 这里是我的这个如何在android中保存switchcompat的状态?

package com.example.srushtee.dummy; 

import android.content.Context; 
import android.content.SharedPreferences; 
import android.support.v4.view.MenuItemCompat; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.SwitchCompat; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.CompoundButton; 
import android.widget.Toast; 
import android.widget.ToggleButton; 

import com.google.firebase.messaging.FirebaseMessaging; 

public class SettingsActivity extends AppCompatActivity { 

private SwitchCompat switchCompat; 
private Boolean isChecked=false; 
private Context context; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_settings); 
    switchCompat=(SwitchCompat) findViewById(R.id.switchButton); 
    FirebaseMessaging.getInstance().subscribeToTopic("APP"); 


    switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if(switchCompat.isChecked()) 
      { 
       SharedPreferences.Editor editor=getSharedPreferences("com.example.srushtee.dummy",MODE_PRIVATE).edit(); 
       editor.putBoolean("True",true); 
       editor.commit(); 

       FirebaseMessaging.getInstance().unsubscribeFromTopic("APP"); 



      } 
      else { 
       SharedPreferences.Editor editor=getSharedPreferences("com.example.srushtee.dummy",MODE_PRIVATE).edit(); 
       editor.putBoolean("false",false); 
       editor.commit(); 
       FirebaseMessaging.getInstance().subscribeToTopic("APP"); 


      } 

     } 
    }); 

} 

代码}

请帮助。谢谢你在前进

+0

我看到您正在保存SharedPreferences。我不知道你是如何使用它的。你可以分享该代码吗? –

+0

这是代码。 – srushteehappy

回答

1

您可以使用交换机上的setOnClickListener并保存state..in sharedPreferences

switchCompat.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) {  
      SharedPreferences.Editor editor = getSharedPreferences("com.example.srushtee.dummy", MODE_PRIVATE).edit(); 
      editor.putBoolean("service_status", switchCompat.isChecked()); 
      editor.commit(); 
     } 
    } 

现在使用retreive值:称这种现象onCreate()

SharedPreferences prefs = getSharedPreferences("com.example.srushtee.dummy", MODE_PRIVATE); 
    boolean switchState = pref.getBoolean("service_status", false); 

    if(switchState){ 
     //Do your work for switch is selected on 
    } else { 
     //Code for switch off 
    }