android onActivityResult не звонит - PullRequest
1 голос
/ 31 мая 2010

Я новичок в Android. У меня есть два экрана. Я переключаюсь между экранами, но onActivityResult() не вызывается в моем приложении. Я возвращаю свой главный экран. Я хочу результат моего второго экрана.

Это мой код:

mainActivity.java

loadPicture.setOnTouchListener(new OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {

        Intent i = new Intent(context, ImageThumbnailsActivity.class);
        startActivityForResult(i, 0);
        return true;
    }

});

ImageThumbnailActivity.java

public class ImageThumbnailsActivity extends Activity {
    private Cursor imagecursor, actualimagecursor;
    private int image_column_index, actual_image_column_index;
    GridView imagegrid;
    private int count;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.image_gallery);
        init_phone_image_grid();

    }

    private void init_phone_image_grid() {
        String[] img = { MediaStore.Images.Thumbnails._ID };
        imagecursor = managedQuery(
        MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, img, null,
            null, MediaStore.Images.Thumbnails.IMAGE_ID + "");
        image_column_index = imagecursor
            .getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
        count = imagecursor.getCount();
        imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
        imagegrid.setAdapter(new ImageAdapterClass(getApplicationContext()));
        imagegrid.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView parent, View v, int position,
                long id) {
                //System.gc();
                String[] proj = { MediaStore.Images.Media.DATA };
                actualimagecursor = managedQuery(                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj,
                    null, null, null);
                actual_image_column_index = actualimagecursor           .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                actualimagecursor.moveToPosition(position);
                String i = actualimagecursor.getString(actual_image_column_index);
                //System.gc();
                Intent intent = new Intent();
                intent.putExtra("filename", i);
                //startActivity(intent);
                setResult(RESULT_OK,intent);
                finish();
            }
        });
    }

    public class ImageAdapterClass extends BaseAdapter {
        private Context mContext;

        public ImageAdapterClass(Context c) {
            mContext = c;
        }

        public int getCount() {
            return count;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            //System.gc();
            ImageView i = new ImageView(mContext.getApplicationContext());
            if (convertView == null) {
                imagecursor.moveToPosition(position);
                int id = imagecursor.getInt(image_column_index);
                i.setImageURI(Uri.withAppendedPath(
                    MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+ id));
                i.setScaleType(ImageView.ScaleType.CENTER_CROP);
                i.setLayoutParams(new GridView.LayoutParams(92, 92));
            } else {
                i = (ImageView) convertView;
            }
            return i;
        }
     }
}

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Добавьте это к основной деятельности:

@Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (requestCode == 0) {
         if (resultCode == RESULT_OK) {
            String filename = data.getStringExtra("filename");
         }
      }
   }
0 голосов
/ 08 июля 2010

Не очевидно, что вы перегрузили метод onActivityResult действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...