2016-05-22 10 views
0

eher erklärend Titel Aufruf wird die XML-warum Schalter Compat Null-Zeiger in Fragmente zu verursachen, wenn hier onCheckedChange

 <android.support.v7.widget.SwitchCompat 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/mySwitch" 
     app:showText="false" 
     android:textOn="On" 
     android:textOff="Off" 
     android:layout_marginLeft="@dimen/activity_horizontal_margin" 
     android:layout_marginRight="@dimen/activity_horizontal_margin" /> 

und hier ist das wichtigste, was

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.intro_frag, container, false); 
    getPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); 
    switchCompat = (SwitchCompat) getActivity().findViewById(R.id.mySwitch); 

    return rootView; 

} 

@Override 
public void onActivityCreated(final Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    switchCompat.setOnCheckedChangeListener(new 
    CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean 
     isChecked) { 
      if (isChecked) { 
       //do stuff 
      } 
      else if (!isChecked){ 
       //do other stuff 
      } 
     } 
    }); 

in meinem Fragmente im tut der Zeile switchCompat.setOnCheckedChangeListener verursacht eine Nullzeigerausnahme, ohne dass alles gut läuft ive hat das Problem durchsucht und ein paar Korrekturen gefunden, wie den Schalter, der Text und Zeug benötigt, aber ich kann das nicht erreichen. Kann mir jemand helfen?

+0

haben Sie überprüfen, ob findViewById() gefunden tatsächlich den Schalter, also sind Sie sicher, switchCompat nicht null ist? – nPn

+0

Nein, es ist nur im selben Layout, ich kann mit dem Schalter spielen, wenn ich den Set-Change-Listener nicht anrufe, wie würde ich das nur wörtlich tun, wenn (mySwitch! = Null) @nPn –

Antwort

0

Ihr Fehler ist:

getActivity() 

Wechseln zu:

switchCompat = (SwitchCompat) rootView.findViewById(R.id.mySwitch); 
+0

Der Artikel "mySwitch" ist drin rootView, nicht Aktivität! : D tschüss NullPointerException – Lucas

+0

Genius danke kann nicht glauben, dass ich es nicht sehen konnte –