2013-10-11 6 views
2

В моем приложении я выбираю изображение из галереи, используя startactivity для результата. мой код следующим образомonbackpressed для намерения галереи, Android

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

     } 
    }); 

все работает нормально, но проблема в том, когда в галерее, если я нажимаю кнопку назад, мое приложение закрывается и возвращает меня к исходному экрану. Для нормальной активности существует метод, называемый OnbackPressed, для обращения к кнопке back.But. Как достичь этого в действии Gallery.

ответ

1

Есть два способа обработки BackButton

1)

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      // Do Some thing Here 
      return false; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

2)

@Override 
    public void onBackPressed() { 
     // Do Some thing Here 
     super.onBackPressed(); 

} 
+0

Обратите внимание, что если вы не хотите закрывать, не следует называть super.onBackPressed. Вероятно, вам понадобится сделать некоторую логику, определяющую, когда будет вызван супер. – eski

+0

Я также предпочел бы использовать onBackPressed, таким образом, будут учтены любые странные вещи, которые могут произойти в конфигурации клавиатуры или оборудования. – eski

+0

моя проблема в том, где я могу использовать эту кнопку onbackpressed. Этот метод работает для нормальной работы. но как я могу использовать его в onstaractivityforresult. –

0

Вы должны использовать ACTION_PICK намерение:

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; 
0

Ближайшие намерения в попытку и c Ачи помог мне. Если есть исключение, например, нажатие кнопки «Назад», я намерен вернуться к активности, которой я был ранее.

Смежные вопросы