Java 无法从“我的活动”访问视图';什么方法?(空对象引用)
我有一个名为TouchImageView的类,它扩展了ImageView,它基本上实现了一个类似于Android“照片”中的图像查看器 当用户单击TouchImageView时,我希望“activity_viewimage”中的另外两个视图通过调用主activityViewImageActivity中的方法来更改可见性:Java 无法从“我的活动”访问视图';什么方法?(空对象引用),java,android,android-studio,Java,Android,Android Studio,我有一个名为TouchImageView的类,它扩展了ImageView,它基本上实现了一个类似于Android“照片”中的图像查看器 当用户单击TouchImageView时,我希望“activity_viewimage”中的另外两个视图通过调用主activityViewImageActivity中的方法来更改可见性: @Override public boolean onSingleTapConfirmed(MotionEvent e) { ViewImage
@Override
public boolean onSingleTapConfirmed(MotionEvent e)
{
ViewImageActivity viewImageActivity= new ViewImageActivity();
viewImageActivity.toggleTopBottomViews();
}
现在在ViewImageActivity中
错误堆栈:
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference
at com.example.zigo.photoencryption.ViewImageActivity.toggleTopBottomViews(ViewImageActivity.java:273)
at com.example.zigo.photoencryption.TouchImageView$GestureListener.onSingleTapConfirmed(TouchImageView.java:764)
at android.view.GestureDetector$GestureHandler.handleMessage(GestureDetector.java:300)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
您永远不会通过“新建”创建活动。它无法正确初始化,活动的初始化仅由框架响应启动活动的请求来处理。即使你可以通过new创建一个活动,它也不会帮助你,你会创建一个具有不同视图的新活动。(这里您得到的是NPE,因为onCreate根本没有被调用,框架没有调用,因为它没有正确启动,您也没有调用) 相反,您应该做的是在视图中传递要切换到检测器的可见性,以便它可以直接执行,或者让创建手势检测器的活动在回调中传递并自己执行
这里有一种可能是您真的不理解活动是什么-如果您认为可以通过创建活动随时添加视图,那么您需要返回到关于活动是什么的教程。感谢您的回复。您将如何传递视图?在topView成为touchimageview类中的公共变量后,我移动了所有内容,并尝试在onCreate(findViewById(R.id.touchimageview)中进行操作。topView=findViewById(R.id.topView),但这不起作用
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference
at com.example.zigo.photoencryption.ViewImageActivity.toggleTopBottomViews(ViewImageActivity.java:273)
at com.example.zigo.photoencryption.TouchImageView$GestureListener.onSingleTapConfirmed(TouchImageView.java:764)
at android.view.GestureDetector$GestureHandler.handleMessage(GestureDetector.java:300)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)