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