2014-10-24 12 views
21

मैं अपने टुकड़े में स्विचकंपैप का उपयोग करने की कोशिश कर रहा हूं। न्यूनतम समर्थित एपीआई 14 है और अधिकतम 21 है। मैं सभी पूर्व लॉलीपॉप एंड्रॉइड संस्करणों के लिए स्विच करने के लिए सामग्री दृश्य को लागू करने की कोशिश कर रहा हूं। लेकिन जब नीचे दिए गए कोड का उपयोग करते हैं तो मुझे एक त्रुटि मिलती है: मैं इसे कैसे ठीक कर सकता हूं?स्विचकंपेट फेंकने त्रुटि

<android.support.v7.widget.SwitchCompat 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

जावा कोड जो अपवाद फेंकने में बढ़ाना:

@Override                      
public View onCreateView(LayoutInflater inflater, ViewGroup container,       
          Bundle savedInstanceState) {           
    final View view = inflater.inflate(R.layout.fragment_scheduler_ui, container, false); 

संदर्भ: http://android-developers.blogspot.in/2014/10/appcompat-v21-material-design-for-pre.html

अपवाद:

10-24 14:15:15.880 1561-1561/com.stackoverflow.ranjith.androidprojdel E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.stackoverflow.ranjith.androidprojdel, PID: 1561 
java.lang.NullPointerException 
     at android.text.Layout.getDesiredWidth(Layout.java:67) 
     at android.support.v7.widget.SwitchCompat.makeLayout(SwitchCompat.java:570) 
     at android.support.v7.widget.SwitchCompat.onMeasure(SwitchCompat.java:495) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916) 
     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113) 
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295) 
     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 
     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670) 
     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 
     at android.view.Choreographer.doCallbacks(Choreographer.java:574) 
     at android.view.Choreographer.doFrame(Choreographer.java:544) 
     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5017) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
     at dalvik.system.NativeStart.main(Native Method) 

Build.gradle:

dependencies { 
    compile 'com.android.support:cardview-v7:+' 
    compile 'com.android.support:recyclerview-v7:+' 
    compile 'com.android.support:palette-v7:+' 
    compile 'com.android.support:support-v4:+' 
    compile "com.android.support:appcompat-v7:21.0.+" 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 
+0

आपके पूरे ' R.layout.fragment_scheduler_ui' सिर्फ 'स्विचकंपेट' है? कुछ संदर्भ मदद कर सकते हैं। – ianhanniballake

+0

इसमें बटन और एडिटेक्स्ट हैं। लेआउट फ़ाइल – Psypher

उत्तर

50

SwitchCompat जब तक आप app:showText="false" सेट आप android:textOn और android:textOff मूल्यों को निर्धारित है कि आवश्यकता है:

<android.support.v7.widget.SwitchCompat 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textOn="ON" 
    android:textOff="OFF" /> 

या (यह मानते हुए अपनी XML फ़ाइल के शीर्ष पर xmlns:app="http://schemas.android.com/apk/res-auto" है)

<android.support.v7.widget.SwitchCompat 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:showText="false" /> 
+1

धन्यवाद में स्विचकंपेट जोड़ने के बाद मुझे समस्या हो रही है .... अब मुझे अपवाद नहीं मिल रहा है लेकिन स्विच प्रदर्शित नहीं हो रहा है ... – Psypher

+0

यह एक और समस्या की तरह लगता है: मैं सुझाव देना चाहता हूं अपने पूरे लेआउट के साथ एक नया प्रश्न और यहां एक लिंक पोस्ट करें – ianhanniballake

+0

एक और प्रश्न बनाया गया: http://stackoverflow.com/questions/26563986/switchcompat-not-displaying-the-switch – Psypher

संबंधित मुद्दे