Тест приложения, есть класс MainActivity , пробую в нем организовать
CheckBoxPreferenceТо есть, (не знаю как правильно назвать) создаю в этом классе, ещё класс
TestSw public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TestSw mTestSw = new TestSw();
mTestSw.neWCheck();
}
public class TestSw extends PreferenceActivity {
public void neWCheck(){
CheckBoxPreference checkBoxPreference = (CheckBoxPreference) findPreference("my_check");
checkBoxPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean isChecked = (Boolean) newValue;
if (isChecked) {
Toast.makeText(getApplicationContext(), "enableEmailNotifications", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "disableEmailNotifications", Toast.LENGTH_SHORT).show();
}
return true;
}
});
}
}
}
В preferences.xml
<CheckBoxPreference
android:key="my_check"
android:title="Hide"
android:defaultValue="false" />
Приложение падает с ошибкой
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.preference.CheckBoxPreference.setOnPreferenceChangeListener(android.preference.Preference$OnPreferenceChangeListener)' on a null object reference
at com.hide.app.MainActivity$TestSw.neWCheck(MainActivity.java:204)
Есть класс Settings, в нем все работает, почему так крошиться?