我不知道发生了什么,但我遇到了一个异常并且应用程序冻结了。
主要活动:
public class MainAcitivty extends FragmentActivity implements OnClickListener
{
// ...
public interface OnItemSelectedListener
{
public void onItemSelected(int resourceId);
}
OnItemSelectedListener mCallback;
@Override
public void onClick(View v)
{
if (v.getId() == R.id.my_imageView)
{
mCallback.onItemSelected(R.id.my_imageView);
}
}
}
分段:
public MyFragment extends Fragment implements MainAcitivty.OnItemSelectedListener
{
@Override
public void onItemSelected(int resourceId)
{
Log.i("INFO", "Selected: " + resourceId);
}
}
如果我单击所选按钮,应用程序将冻结并抛出以下异常:
E/AndroidRuntime(21649):致命异常:主要
E/AndroidRuntime(21649): java.lang.NullPointerException
E/AndroidRuntime(21649):在 com.example.MainActivity.onClick(MainActivity.java:53)
E/AndroidRuntime(21649):在 android.view.View.performClick(View.java:4232)
E/AndroidRuntime(21649):在 android.view.View$PerformClick.run(View.java:17298)
E/AndroidRuntime(21649):在 android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime(21649):在 android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(21649): 在 android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(21649): 在 android.app.ActivityThread.main(ActivityThread.java:4921)
E/AndroidRuntime(21649):在 java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21649):在 java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(21649):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
E/AndroidRuntime(21649):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
E/AndroidRuntime(21649): 在 dalvik.system.NativeStart.main(Native Method)