Суть вопроса очень проста: я заметил что обработчик который я назначил SwitchPreference не всегда срабатывает. Просто через раз то отработает то нет, при этом анимация переключения срабатывает. Код тривиальный и простой:
package com.test.socks_settings;
import android.os.Bundle;
import android.preference.*;
import android.util.Log;
import android.view.View;
import com.example.minimal.R;
import go.go_mobile.Go_mobile;
public class AppPreferences extends PreferenceActivity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
private static SwitchPreference authenable;
private static EditTextPreference logPref;
private static EditTextPreference passPref;
public static class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefference);
this.findPreference("on_off_switch").setOnPreferenceClickListener(new OnSwitchClick());
AppPreferences.logPref=(EditTextPreference)this.findPreference("user");
AppPreferences.passPref=(EditTextPreference)this.findPreference("password");
AppPreferences.authenable=(SwitchPreference)this.findPreference("auth_enable");
}
public static class OnSwitchClick implements Preference.OnPreferenceClickListener {
public boolean onPreferenceClick(Preference preference){
SwitchPreference sw=(SwitchPreference)preference;
Log.i("MyActivity", "switch state"+sw.isChecked());
if (sw.isChecked()){
Go_mobile.Start(1080,"","",4096);
}else {
Go_mobile.Stop();
}
return true;
}
}
}
}