Java 在片段中切换无事件

Java 在片段中切换无事件,java,android,Java,Android,我使用MainActivity作为FragmentActivity,使用TabsPagerAdapter作为FragmentPagerAdapter。 我将Statusbar作为一个片段(和一页选项卡),并使用此代码向片段添加一个开关,在事件期间不会发生任何事情 public class Statusbar extends Fragment implements OnCheckedChangeListener { @Override public View onCreateVie

我使用MainActivity作为FragmentActivity,使用TabsPagerAdapter作为FragmentPagerAdapter。 我将Statusbar作为一个片段(和一页选项卡),并使用此代码向片段添加一个开关,在事件期间不会发生任何事情

public class Statusbar extends Fragment implements OnCheckedChangeListener {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
        View mLinearLayout = (View) inflater.inflate(R.layout.statusbar_fragment,
                container, false);
        Switch s = (Switch) getActivity().findViewById(R.id.swt1);
        if (s != null) {
            s.setOnCheckedChangeListener(this);
        }
        return mLinearLayout;
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
       Toast.makeText(getActivity(), "hi",
               Toast.LENGTH_SHORT).show();
    }
}
有什么问题吗?如果我删除此项:
如果(s!=null){…}
它会因nullpointerexception而崩溃。

您有:

View mLinearLayout = (View) inflater.inflate(R.layout.statusbar_fragment,
            container, false);
    Switch s = (Switch) getActivity().findViewById(R.id.swt1);
将其更改为:

View mLinearLayout = (View) inflater.inflate(R.layout.statusbar_fragment,
            container, false);
    Switch s = (Switch) mLinearLayout .findViewById(R.id.swt1);

我还可以知道它们之间的区别吗?在片段中,视图膨胀,这就是为什么我们使用视图来查找元素。。在活动中,您不使用任何视图。很高兴这有助于理解。。非常感谢你的帮助!祝您有个美好的一天!是的。我不得不等12分钟;)