2013-12-19 3 views
3

버튼을 테스트하기 위해 fragmentDialog.Befire를 통해 android에서 fileupload를 실행하여 문제가 발생했습니다. 테스트하기 위해 활동 등을 만들었지 만, evrything은 제대로 작동하지만 dilogfragment 아래에 아무것도 넣지 않았기 때문에 :onActivityResult DialogFragment가 작동하지 않습니다.

public class UploadF extends DialogFragment{ 

    .... 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 


    gallery_button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent gal = new Intent(); 
      gal.setType("image/*"); 
      gal.setAction(Intent.ACTION_GET_CONTENT); 
      startActivityForResult(Intent.createChooser(gal, "Select Picture"), SELECT_IMAGE); 

     } 

    }); 




    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == Activity.RESULT_OK) { 
      if (requestCode == SELECT_IMAGE) { 
       .... 

       if (selectedImagePath != null) { 
        UploadFileI task = new UploadFileI(getActivity()); 
        task.execute(url); 
       } 
      } 



     } 

    } 



} 
+0

표시된 것은 유효합니다. 우리가 당신을 도울 때 필요한 부분은 거기 있지 않습니다. 예 : 어떻게 DialogFragment를 시작합니까? 어떤 활동에서, 무엇을 부름으로써? 도와주세요! –

+0

는 아무것도 –

+0

당신이 가진 모든 코드 간다 – Entreco

답변

6

아무 일도 일어나지 않았습니다. Activity의 메소드는 onActivityResult이고, Fragment의 메소드는 1 개뿐입니다. 이 혼란하고, 진행 호출하여 활동 컨텍스트를 사용하려고하기 위해 수 있습니다

getActivity().startActivityForResult(Intent.createChooser(gal, "Select Picture"), SELECT_IMAGE); 

이 방법, 결과를 받게됩니다 UploadF을 만든 활동. 그래서 당신은 당신의 onActivityResult 당신의 Activity로 이동해야합니다 :

public class YourActivity extends Activity { 
    ... 
    public void onActivityResult(int requestCode, int resultCode, Intent data){} 
    ... 
} 

기능을 당신의 UploadF 외부 부모 활동의 내부. 문제가 해결되지 않는 경우, DialogFragment 내부에 startActivityForResult를 검색

내가 아무것도 작동하지 않습니다 클릭하면, 그것은 아무것도 전송하지 않습니다 말은, 내 메뉴 메신저 UploadFile로 클릭 아무런 반응
+0

안녕하세요,하지만 결과에서 처리 할 객체가 많기 때문에 활동에서 단편을 얻는 방법은 무엇입니까? (동일한 상황을 직면하고있다) – Totalys

+1

활동 내에서 getFragmentManager(), findFragmentById() 또는 getFragmentManager()를 사용한다. findFragmentByTag() – Entreco

관련 문제