2

私のアプリでは、結果の startactivity を使用してギャラリーから画像を選択します。次のように私のコード

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 というメソッドがありますが、ギャラリー アクティビティでこれを実現するにはどうすればよいですか。

4

4 に答える 4

1

BackButton を処理するには 2 つの方法があります

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

}
于 2013-10-11T05:32:04.833 に答える
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;
于 2013-12-12T11:23:07.473 に答える
0

要求コードを処理する前に、最初に結果コードを処理してください

if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_FROM_CAMERA) {
    //your code
} 
于 2018-04-16T07:22:04.180 に答える