-1
我有一個類叫TouchImageView,它擴展了ImageView,它基本上實現了一個類似於Android的「照片」中的圖像查看器。無法從我的活動方法訪問視圖? (空對象引用)
當用戶單水龍頭TouchImageView,我想「activity_viewimage」內的其他兩個視圖通過調用一個方法的主要活動ViewImageActivity改變的可視性:
@Override
public boolean onSingleTapConfirmed(MotionEvent e)
{
ViewImageActivity viewImageActivity= new ViewImageActivity();
viewImageActivity.toggleTopBottomViews();
}
而現在ViewImageActivity
public class ViewImageActivity extends AppCompatActivity {
private View bottomView;
private View topView;
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewimage);
bottomView = findViewById(R.id.bottom_view);
topView = findViewById(R.id.top_view);
}
public void toggleTopBottomViews()
{
if (topView.getVisibility()== View.VISIBLE && bottomView.getVisibility()== View.VISIBLE)
{
bottomView.setVisibility(View.INVISIBLE);
topView.setVisibility(View.INVISIBLE);
}
else
{
bottomView.setVisibility(View.VISIBLE);
topView.setVisibility(View.VISIBLE);
}
}
錯誤堆棧:
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)
感謝您的回覆。 –
你會如何通過意見?我移動了所有東西,我試圖在onView(view.ById(R.id.touchimageview).topView = findViewById(R.id.topview))中完成topView作爲touchimageview類中的一個公共變量,但這不起作用 –