Java 安卓上另一个活动的按钮不断崩溃

Java 安卓上另一个活动的按钮不断崩溃,java,android,gridview,Java,Android,Gridview,我正在尝试制作一个gridview图库。当您从图库中单击一张照片时,它会在另一个活动中打开。 问题是,如果用户没有返回手机的按钮,他就无法返回gridview。 所以我做了一个按钮回去。按钮的代码: public class Fullscreen extends AppCompatActivity { ImageView imageView; private Button button; @Override protected void onCreate(

我正在尝试制作一个
gridview
图库。当您从图库中单击一张照片时,它会在另一个活动中打开。 问题是,如果用户没有返回手机的按钮,他就无法返回gridview。 所以我做了一个按钮回去。按钮的代码:


public class Fullscreen extends AppCompatActivity {


    ImageView imageView;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fullscreen);


        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener(){


            @Override
            public void onClick(View v) {
                GoToGallery();
            }


        });






        imageView = (ImageView) findViewById(R.id.image_view);




        Intent i = getIntent();

        int position = i.getExtras().getInt("id");


        ImageAdapter imageAdapter = new ImageAdapter(this);

        imageView.setImageResource(imageAdapter.imageArray[position]);
    }


    public void GoToGallery(){
        Intent intent = new Intent(this, Fullscreen.class);
        startActivity(intent);
    }


}
它位于新的全屏活动中,当你第一次加载应用程序时它就工作了。但是如果你打开第二个图像并按下按钮,它只会崩溃一次。 我得到的唯一警告是:
方法调用“getInt”可能会产生“NullPointerException”
但是我不知道如何处理它,我读到大多数时候它并不重要


提前感谢。

您的GoToGallery函数再次打开相同的活动全屏,并且不传递id,因为该id行
imageView.setImageResource(imageAdapter.imageArray[position])导致NullPointerException

更新按钮OnClickListener以修复此问题。调用finish()方法关闭当前活动并移回上一个活动

 button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
               finish();
            }
        });

GoToGallery函数再次全屏打开同一活动,但不传递id,因为行
imageView.setImageResource(imageAdapter.imageArray[position])导致NullPointerException

更新按钮OnClickListener以修复此问题。调用finish()方法关闭当前活动并移回上一个活动

 button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
               finish();
            }
        });

首先,您不打算参加不同的活动您将再次开始相同的活动请查看您的代码:

public void GoToGallery(){
    Intent intent = new Intent(this, Fullscreen.class); //Fullscreen.class is same activity from where you are starting
    startActivity(intent);
}
另一件事是,当你开始同样的活动时,它应该在没有任何借口的情况下开始,比如你发现它是
,因为当你开始同样的活动时,你没有放任何额外的东西
,但你正在尝试
getInt
,所以我认为试试这个代码,它可能会帮助你:

public void GoToGallery(){
    onBackPressed();
}

首先,您不打算参加不同的活动您将再次开始相同的活动请查看您的代码:

public void GoToGallery(){
    Intent intent = new Intent(this, Fullscreen.class); //Fullscreen.class is same activity from where you are starting
    startActivity(intent);
}
另一件事是,当你开始同样的活动时,它应该在没有任何借口的情况下开始,比如你发现它是
,因为当你开始同样的活动时,你没有放任何额外的东西
,但你正在尝试
getInt
,所以我认为试试这个代码,它可能会帮助你:

public void GoToGallery(){
    onBackPressed();
}