切换内部片段

时间:2016-04-30 11:20:22

标签: android android-fragments

无法弄清楚出了什么问题。在活动中,下面的代码就像一个魅力。但是当我在片段中使用它时,应用程序会因此错误而崩溃

person

这是代码

 java.lang.NoClassDefFoundError

一旦调用setOnCheckedChangeListener,应用程序崩溃......我尝试了不同的方法来实现活动,上下文,尝试使用OnClick ...但我可以弄清楚如何使用切换。欢迎任何帮助。谢谢!

更新

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;
}
}

1 个答案:

答案 0 :(得分:1)

您需要使用设计库:

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

我也不确定你使用什么类型的片段。它是支持库Fragment吗?如果是,您可以使用交换机的appcompat版本:

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"/>