2010-05-31 109 views
1

我是Android初學者。我有兩個屏幕。我在屏幕之間切換,但在我的應用程序中未調用onActivityResult()。我正在回到主屏幕。我想要我的第二個屏幕的結果。android onActivityResult not calling

這是我的代碼:

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

回答

0

這不是明擺着你已經超負荷活動的onActivityResult方法。

2

一下添加到您的主要活動:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
      String filename = data.getStringExtra("filename"); 
     } 
     } 
    }