2016-06-16 61 views
0

不知道這是否是知道的行爲或什麼,但這裏的邏輯流程:Android應用程序掛到startActivityForResult

  1. 用戶打開應用程序
  2. 抽導航抽屜出來,點擊個人資料相片來改變它
  3. 畫廊意圖彈出,用戶摘圖像,一切工作正常
  4. 隨後試圖打開畫廊工作正常,在選擇圖片,應用程序掛起

onResume()不被調用,也不是onActivityResult()。我甚至在onActivityResult中註釋掉了所有的代碼,但它仍然會發生。任何想法會導致這種情況?

這裏是主要的活動

ImageButton profilePictureButton = (ImageButton) findViewById(R.id.change_profile_picture); 
    profilePictureButton.requestFocus(); 
    profilePictureButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(Intent.ACTION_PICK); 
      intent.setType("image/*"); 

      startActivityForResult(intent, 1); 
     } 
    }); 

在這裏從的onCreate代碼()年代的處理程序:

@Override 
protected void onActivityResult(int requestCode, int resultCode, final Intent data) { 
    if(resultCode == RESULT_OK) { 
     if(requestCode == 1) { 
      ImageView view = ((ImageView) findViewById(R.id.nav_profile_picture)); 

      if(data != null) { 
       /*Picasso.with(this).load(data.getData()).into(view); 

       UsersCache.getInstance().GetUser("", new Response.Listener<UserItem>() { 
        @Override 
        public void onResponse(UserItem response) { 
         String pictureName = response.username + UUID.randomUUID().toString(); 
         String url = "<redacted>"; 

         JSONObject requestBody = new JSONObject(); 
         try { 
          requestBody.put("profilePicture", "<redacted>/media/profile_pictures/" + pictureName); 
         } catch(JSONException e) { 
          e.printStackTrace(); 
          return; 
         } 

         FlareJsonObjectRequest request = new FlareJsonObjectRequest(Method.POST, url, requestBody, new Response.Listener<JSONObject>() { 
          @Override 
          public void onResponse(JSONObject response) { 
           String tet = null; 
          } 
         }, new Response.ErrorListener() { 
          @Override 
          public void onErrorResponse(VolleyError error) { 
           String tet = null; 
          } 
         }); 

         new AmazonS3Uploader(data.getData(), "profile_pictures/" + pictureName); 

         VolleyQueue.getInstance().getQueue().add(request); 
        } 
       }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         String tet = null; 
        } 
       });*/ 
      } 
     } 
+0

向我們展示一些代碼。 –

+0

「gallery」是一個Activity在您的代碼庫中,還是在另一個應用程序中? – Egor

+0

只是標準畫廊的意圖,如圖所示。 –

回答

0

我認爲你缺少在清單中的讀訪問權限 -

android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
+0

不像它說的那樣,就像我說的,當你第一次設置你的個人資料照片時,它工作正常。當您嘗試並在之後立即執行時,它不起作用。 –

+0

您是否有任何崩潰,請分享崩潰報告。它會有很大的幫助,如果可能的話,分享你的活動課程。 – Neo

相關問題