onbackpressed用于画廊目的,Android
在我的应用程序中,我使用startactivity从图库中选择一幅图像作为结果。我的代码如下onbackpressed用于画廊目的,Android,android,button,android-activity,gallery,back-button,Android,Button,Android Activity,Gallery,Back Button,在我的应用程序中,我使用startactivity从图库中选择一幅图像作为结果。我的代码如下 GALLERY.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.A
GALLERY.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 0 );
}
});
这一切都很好,但问题是,当我在gallery中按“后退”按钮时,我的应用程序关闭并返回主屏幕。对于正常的活动,有一种称为OnbackPressed的方法来处理back按钮。但是在Gallery活动中如何实现这一点。有两种方法来处理BackButton (一) (二)
您需要使用动作\拾取意图:
Intent intentImage = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intentImage, RESULT_LOAD_IMAGE);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case RESULT_LOAD_IMAGE:
if (resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
Path = cursor.getString(columnIndex);
setImage(Path);
Toast.makeText(this, "File Clicked: "+picturePath, Toast.LENGTH_SHORT).show();
cursor.close();
}
break;
围绕着这一意图进行一次尝试和抓住帮助了我。如果出现异常,如按“后退”按钮,我将返回到以前参加的活动。请在处理请求代码之前先处理结果代码
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_FROM_CAMERA) {
//your code
}
请注意,如果不想关闭,则不应调用super.onBackPressed。您可能需要制定一些逻辑来确定何时调用super。我也更喜欢使用OnBackpress,这样可以解决键盘或硬件配置中可能发生的任何奇怪的事情。我的问题是,在哪里使用OnBackpress按钮。此方法适用于正常活动。但我如何在onstaractivityforresult中使用它。当我进入手机库时,当我按下“后退”按钮时。我在应用程序之外。我的意思是它关闭了应用程序。哦,我还以为这是你自己的自定义图库实现。你不能改变其他应用程序的功能。
Intent intentImage = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intentImage, RESULT_LOAD_IMAGE);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case RESULT_LOAD_IMAGE:
if (resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
Path = cursor.getString(columnIndex);
setImage(Path);
Toast.makeText(this, "File Clicked: "+picturePath, Toast.LENGTH_SHORT).show();
cursor.close();
}
break;
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_FROM_CAMERA) {
//your code
}