2013-07-03 45 views
0

中切换按钮我的切换按钮出现问题,并且我总是关闭某个部队。按钮的代码:使用SharedPreferences强行关闭并在android

public void getToggle(View view) { 
     boolean on = ((ToggleButton) view).isChecked(); 
     if (on) { 
      PackageManager pm = getPackageManager(); 
      ComponentName compName = new ComponentName(getApplicationContext(), 
      LowBatteryReceiver.class); 
      pm.setComponentEnabledSetting(compName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
      PackageManager.DONT_KILL_APP); 
      Toast.makeText(MainActivity.this, "Modalità risparmio attivata", Toast.LENGTH_LONG).show(); 
      TextView textView = (TextView)findViewById(R.id.risparmiostate); 
      textView.setText("Modalità risparmio on"); 

      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putBoolean("tgpref", true); // value to store 
      editor.commit(); 

     }else{ 
      PackageManager pm = getPackageManager(); 
      ComponentName compName = new ComponentName(getApplicationContext(), 
      LowBatteryReceiver.class); 
      pm.setComponentEnabledSetting(compName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
      PackageManager.DONT_KILL_APP); 
      Toast.makeText(MainActivity.this, "Modalità risparmio disattivata", Toast.LENGTH_LONG).show(); 
      TextView textView = (TextView)findViewById(R.id.risparmiostate); 
      textView.setText("Modalità risparmio off"); 

      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putBoolean("tgpref", false); // value to store 
      editor.commit(); 
     } 
    } 

,并在onCrerate

public SharedPreferences preferences; 
    /** Called when the activity is first created. */ 
    @SuppressLint("NewApi") 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
SharedPreferences preferences = getPreferences(MODE_PRIVATE); 
     boolean tgpref = preferences.getBoolean("tgpref", true); //default is true 
     if (tgpref = true) //if (tgpref) may be enough, not sure 
     { 
      togglebutton.setChecked(true); 
     } 
     else 
     { 
      togglebutton.setChecked(false); 
     } 

任何想法?我尝试了一切。谢谢。我的logcat不起作用(我不知道为什么)。不显示任何东西。

+0

发布logcat错误,否则它不容易找出意思,我们无法找到任何东西在黑暗的夜晚 –

回答

1

变化

SharedPreferences preferences = getPreferences(MODE_PRIVATE); 

preferences = getPreferences(MODE_PRIVATE); 
在活动的 onCreate

因为你没有在getToggle方法

+0

不工作..我有logcat ..我有一个致命错误“无法启动活动”和然后“引起NullPointerException .... MainActivity onCreate(57)” –

+0

好吧,现在它的工作原理,问题是我宣布检查条件后的togglebutton。现在唯一的问题是切换开始在“开”状态而不是“关”。为什么? –

+0

男子请帮助! http://stackoverflow.com/questions/17421506/how-to-parse-same-name-tag-in-android-xml-dom-parsing – Altair

1

尝试使用它之前初始化其中U声明为类级别字段喜好实例使用

if (tgpref == true) 

或者

if(tgpref) 

代替

如果(tgpref =真)。

尝试在Oncreate()中初始化TextView textView = (TextView)findViewById(R.id.risparmiostate);

同样删除SharedPreferencesSharedPreferences preferences = getPreferences(MODE_PRIVATE);正如你已经宣布全球。

+0

这些解决方案没有工作: (。有可能这个问题是我设置切换的方式吗? –

+0

把你的更新代码与xml.If你得到logact错误,然后也发布它 –

+0

我解决了。问题是,我宣布检查条件后的togglebutton 。但是现在当我第一次启动应用程序时,切换开关设置为“开”状态而不是“关”。我如何设置为默认状态? –

相关问题