2016-04-30 120 views
0

只是无法弄清楚什么是错的。在活动中,下面的代码就像一个魅力。但是,当我用它片段中,应用程序与此错误切换里面的片段

java.lang.NoClassDefFoundError 

这里崩溃的代码

public class design extends Fragment{ 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_design, container, false); 
    Switch night_mode_always = (Switch)view.findViewById(R.id.sNight); 

    night_mode_always.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      Toast.makeText(getActivity(), "TEST", Toast.LENGTH_LONG).show(); 
     } 
    }); 

    return view; 
} 
} 

一旦该setOnCheckedChangeListener被调用时,应用程序崩溃......我尝试了不同的方式来实施活动,上下文,尝试与OnClick ...但我可以弄清楚如何用开关做到这一点。欢迎任何帮助。谢谢!

UPDATE

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.test.testapp, PID: 25299 
java.lang.NoClassDefFoundError: com.test.testapp.settings.design$1 
com.test.testapp.settings.design.onCreateView(design.java:32) 
+0

把你的日志和异常发现你有什么问题完全一样。 – Amir

回答

1

您需要使用的设计库:

compile 'com.android.support:design:23.3.0' 

我也不能确定你使用的是什么类型的片段的。它是支持库的片段吗?如果是,你可以使用交换机的程序兼容性版本:

http://www.truiton.com/2015/03/android-switch-button-example/

开关看起来是这样的:

<android.support.v7.widget.SwitchCompat 
    android:id="@+id/switch_compat" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="50dp" 
    android:layout_marginStart="50dp" 
    android:layout_marginTop="25dp" 
    android:checked="false" 
    android:text="SwitchCompat (SDK v7+)" 
    android:textOff="OFF" 
    android:textOn="ON" 
    app:showText="true"/> 
+0

谢谢,但没有奏效。我已经在使用设计库。我使用导入android.support.v4.app.Fragment ;.我将Switch切换到了SwitchCompat,但它仍然在同一个地方崩溃。 – Wladislaw

+0

您的链接帮助,将立即更新我的代码。谢谢! – Wladislaw