2013-12-19 3 views
3

У меня возникла проблема, выполнив загрузку файлов в android через фрагментDialog.Befire, чтобы протестировать кнопку, которую я сделал активностью, и т. Д., Чтобы протестировать ее, 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

Я имею в виду, когда я нажимаю ничего не работает, он не отправит ничего, никакой реакции –

+0

, когда я нажимаю на uploadFile им мое меню, ничего идет –

+0

Всего кода у вас есть показанный, кажется, действителен. Части, которые необходимы для нас, чтобы помочь вам, не существуют. Например. как вы запускаете DialogFragment? С какой деятельности, позвонив? Помогите нам! – Entreco

ответ

6

Вы правы, что ничего не происходит. Activity имеют метод onActivityResult, а Fragment - один. Это может привести к путанице, и для того, чтобы продвигаться вперед, попытаться использовать контекст активности по телефону:

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 и внутри родительской деятельности. Если это не работает, поиск startActivityForResult внутри DialogFragment

не
+0

Привет, но как получить фрагмент из активности, так как у меня есть много объектов для обработки результатов? (я столкнулся с такой же ситуацией) – Totalys

+1

Внутри операции используйте getFragmentManager(). findFragmentById() или getFragmentManager(). findFragmentByTag() – Entreco

Смежные вопросы