Android OnCheckBox在片段中单击

Android OnCheckBox在片段中单击,android,checkbox,onclick,fragment,Android,Checkbox,Onclick,Fragment,我已经处理这个错误很多小时了。令人沮丧的是,代码没有任何错误,但当我试图启动应用程序时,它不起作用。当我删除正在处理的代码时,应用程序运行得非常完美 代码中有什么遗漏吗?我有没有不必要的代码 我非常感谢你的帮助 这是我的代码: import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import a

我已经处理这个错误很多小时了。令人沮丧的是,代码没有任何错误,但当我试图启动应用程序时,它不起作用。当我删除正在处理的代码时,应用程序运行得非常完美

代码中有什么遗漏吗?我有没有不必要的代码

我非常感谢你的帮助

这是我的代码:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;


 public class FörstängningFragment extends Fragment {


    int checkOne = '0';
    int checkTwo = '0';
    int checkThree = '0';
    ImageView bild = (ImageView)
            getView().findViewById(R.id.forstangningimage);



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_forstangning, container, false);
        bild = (ImageView) rootView.findViewById(R.id.forstangningimage);
        bild.setImageResource(R.drawable.forstangning);
        CheckBox c = (CheckBox) rootView.findViewById(R.id.checkboxbak);
        CheckBox c2 = (CheckBox) rootView.findViewById(R.id.checkBox2);
        CheckBox c3 = (CheckBox) rootView.findViewById(R.id.checkBox3);
        bild = (ImageView) rootView.findViewById(R.id.forstangningimage);


        c.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    checkOne = '1';
                    bild.setImageResource(R.drawable.ic_launcher);
                } else {
                    checkOne = '0';
                    bild.setImageResource(R.drawable.forstangning);
                }
            }
        });
        c2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    checkTwo = '1';
                    bild.setImageResource(R.drawable.ic_launcher);
                } else {
                    checkTwo = '0';
                    bild.setImageResource(R.drawable.forstangning);
                }
            }
        });
        c3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    checkThree = '1';
                    bild.setImageResource(R.drawable.ic_launcher);
                } else {
                    checkThree = '0';
                    bild.setImageResource(R.drawable.forstangning);
                }
            }
        });

        return rootView;
    }
}
我的日志说:

01-21 20:56:31.869    1349-1349/hej.swipeview E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
        at hej.swipeview.FörstängningFragment.<init>(FörstängningFragment.java:20)
        at hej.swipeview.FragmentPageAdapter.getItem(FragmentPageAdapter.java:25)
        at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:97)
        at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:837)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1053)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
        at android.support.v4.view.ViewPager$3.run(ViewPager.java:249)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
        at android.view.Choreographer.doCallbacks(Choreographer.java:562)
        at android.view.Choreographer.doFrame(Choreographer.java:531)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
        at android.os.Handler.handleCallback(Handler.java:730)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5103)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
01-21 20:56:31.869 1349-1349/hej.swipeview E/AndroidRuntime﹕ 致命异常:主
java.lang.NullPointerException
在hej.swipeview.FörstängningFragment.(FörstängningFragment.java:20)
位于hej.swipeview.FragmentPageAdapter.getItem(FragmentPageAdapter.java:25)
位于android.support.v4.app.FragmentPagerAdapter.InstanceItem(FragmentPagerAdapter.java:97)
位于android.support.v4.view.ViewPager.addNewItem(ViewPager.java:837)
位于android.support.v4.view.ViewPager.populate(ViewPager.java:1053)
在android.support.v4.view.ViewPager.populate上(ViewPager.java:919)
在android.support.v4.view.ViewPager$3.run(ViewPager.java:249)
在android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
位于android.view.Choreographer.doCallbacks(Choreographer.java:562)
位于android.view.Choreographer.doFrame(Choreographer.java:531)
在android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)中
位于android.os.Handler.handleCallback(Handler.java:730)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:5103)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:737)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
在dalvik.system.NativeStart.main(本机方法)

在调用
onCreateView
后(而不是在创建java对象时)找到用于TangNingImage视图的

另外,不要使用
视图。OnClickListener
,而是迁移到使用更适合您需要的

作为继承人,一个


然后重复
c2
c3

显示您的日志…我更新了我的答案,这样片段就不会试图找到TangNingImage
视图的
,直到调用
onCreateView
之后,代码仍然是绿色的,但启动器没有按照我的要求执行操作。我已经更新了我的代码,这样你就可以看到它现在的样子。也许我必须在我的ActivitySwipe或FragmentPageAdapter中添加一些东西,才能让我的片段中的代码正常工作?我已经更新了我的日志。不,在我看来这是同样的问题。就像以前一样。
public class FörstängningFragment extends Fragment {


    int checkOne = '0';
    int checkTwo = '0';
    int checkThree = '0';
    ImageView bild;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_forstangning, container, false);
        bild = (ImageView) rootView.findViewById(R.id.forstangningimage);
        bild.setImageResource(R.drawable.forstangning);
        CheckBox c = (CheckBox) rootView.findViewById(R.id.checkboxbak);
        CheckBox c2 = (CheckBox) rootView.findViewById(R.id.checkBox2);
        CheckBox c3 = (CheckBox) rootView.findViewById(R.id.checkBox3);
        bild = (ImageView) rootView.findViewById(R.id.forstangningimage);
CheckBox c = (CheckBox) rootView.findViewById(R.id.checkboxbak);
....
c.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // The toggle is enabled
        } else {
            // The toggle is disabled
        }
    }
});