我的代码大部分时间都运行良好,但有时我的shake侦听器中的getActivity()为null。我确定片段附加到活动,因为我在震动发生之前执行了一些其他更新到它的UI。此外,我将监听器附加在onActivityCreated方法中,该方法确保创建活动并附加片段。
@Override
public void onActivityCreated (Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
ShakeListener mShaker = new ShakeListener(getActivity());
mShaker.setOnShakeListener(new ShakeListener.OnShakeListener () {
public void onShake()
{
ImageView next_App = (ImageView)getActivity().findViewById(R.id.next_app);
Animation next_move = AnimationUtils.loadAnimation(getActivity(), R.anim.next);
next_App.startAnimation(next_move);
}
});
}
我无法弄清楚这个问题,还有许多其他问题的答案,所以任何帮助都表示赞赏。 感谢
答案 0 :(得分:1)
片段与活动分离,因此getActivity()
有时会返回null。
添加getActivity != null
支票或在isAdded()
之前更好地检查getActivity()
。