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();
}