2013-10-11 30 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的方法來處理返回按鈕。但是我如何在Gallery活動中實現這一點。

回答

1

有兩種方式來處理後退按鈕

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。您很可能需要制定一些邏輯來確定何時會調用super。 – 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 atch幫助了我。如果出現異常,像按下後退按鈕,我就會回到之前的活動。