상상해 본다면 조각 A입니다.이 중 startDialogFragment (상자에 EditText
이 있음)을 상상해보십시오. EditText
에서 으로 값을 되돌릴 수있는 방법 FragmentA? 나는 this과 같은 것을 만들려고합니다. 그리고 this하지만 성공하지 못했습니다.DialogFragment에서 단편으로 데이터를 가져 오는 방법은 무엇입니까?
답변
방법이이 상황에서 유용합니다. getTargetRequestCode()
이 필요합니다. 조각 사이에 설정 한 코드이므로 식별 할 수 있습니다. 또한, 일반적으로 단지 0
코드는 또한 너무
Intent intent = new Intent();
intent.putExtra("STRING_RESULT", str);
처럼 당신이 너무 문자열을 연결할 수있는 Intent
을, 잘 작동하고있는 경우, 요청 코드를 걸립니다 setTargetFragment(Fragment, requestCode)
는 조각에 사용되어야한다 그 결과를 식별하기 위해 보낸 것입니다.
private void sendResult(int REQUEST_CODE) {
Intent intent = new Intent();
intent.putStringExtra(EDIT_TEXT_BUNDLE_KEY, editTextString);
getTargetFragment().onActivityResult(
getTargetRequestCode(), REQUEST_CODE, intent);
}
:
FragmentManager fm = getActivity().getSupportFragmentManager();
DialogFragment dialogFragment = new DialogFragment();
dialogFragment.setTargetFragment(this, REQUEST_CODE);
dialogFragment.show();
데이터를 전송하기 위해 우리가 정의한이 조각을 사용 데이터합니다 (DialogFragment)를 전송하는 클래스 : 전반적으로, 당신은 다음과 같습니다 요청 단편 코드를 것 데이터를 수신하기 위해, 우리는 처음에 DialogFragment 시작 조각에서 클래스의 이러한 유형의 사용 :이 시점에서
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// Make sure fragment codes match up
if (requestCode == DialogFragment.REQUEST_CODE) {
String editTextString = data.getStringExtra(
DialogFragment.EDIT_TEXT_BUNDLE_KEY);
을, 당신은 당신의 EditText
에서 문자열을 상위 단편의 DialogFragment
에서 익명의 TextChangeListener()
익명 클래스에서 sendResult(int)
메서드를 사용하면 필요한 때에 텍스트가 전송됩니다.
고마워요, 매우 유용합니다 –
아주 좋은 explenation. 너는 내 하루를 구했다. 고마워요! – Kristopher
안녕하세요.이 솔루션을 이용해 주셔서 감사합니다. 제발 도와주세요. 왜 내 onActivityResult() 메서드가 대화 상자 조각에서 결과를 캡처 할 수 없습니까? 동일한 코드가있을 때 ... 미리 감사드립니다! –
대화 상자의 데이터를 콜백 메소드를 통해 액티비티로 다시 보내야합니다. 그런 다음 액티비티가 원하는 데이터를 해당 프래그먼트로 되돌려 보내야합니다. 간단한 예 :
public void datFromDialog(String data){
MyFragment mf = (MyFragment)getFragmentManager().findFragmentById(r.id.frag);
mf.iWantNewData(data);
}
제발, 당신은 그것을 더 설명하거나 더 많은 exaple –
보세요 http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity – tyczj
내가 필요합니다 대신 단편과 의사 소통을하면 –
당신이 원하는 무엇 ... Android Developers에 따라
제목과 옵션 tag.And 대화에 대한 메시지를 표시하면 대화 상자가 열립니다 업로드 버튼의 클릭에, 서버에 어떤 파일을 업로드하는 상황을 가정 2 개의 단추가 들어있는 자체는 취소 및 계속을 말합니다.
레이아웃 xml 파일을 사용하여 원하는대로 UI를 만드십시오.
다음 DialogFragment를 확장하는 하나의 클래스를 만듭니다. onCreateView() 메서드 내에서 레이아웃을 확장하고 뷰를 초기화합니다.클래스 내부
하나의 인터페이스
public interface uploadDialogInterface
{
public void senddata(String title, String tag);
}
uploadDialogInterface interfaceObj;
String title="";
String tag=" ";
을 만들고 중요한 것은() 메소드는 onAttach를 오버라이드 (override) 할 필요가있다
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.context=context;
interfaceObj= (uploadDialogInterface) getTargetFragment();
}
그리고 버튼에
같은 인터페이스 메소드를 호출 클릭에 @Override
public void onClick(View v) {
int id=v.getId();
if(id== R.id.vB_fud_cancel)
{
dismiss();
}
else if(id== R.id.vB_fud_upload)
{
title=mVideotitle.getText().toString();
tag=mOptionaltag.getText().toString();
if(mVideotitle.getText().toString().isEmpty()) {
Snackbar.make(mVideotitle,"Please enter the video title", Snackbar.LENGTH_SHORT).show();
}else
{
interfaceObj.senddata(title,tag);
dismiss();
}
}
}
그리고 대화 상자를 시작할 조각이나 활동 안에 setTargetFragment 속성을 포함합니다.
private void callUploadDialog()
{
UploadDialogFragment fragment = new UploadDialogFragment();
fragment.setTargetFragment(this, 0);
FragmentManager manager = getFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimations(R.anim.fade_in, R.anim.fade_in);
fragment.show(ft, "UploadDialogFragment");
fragment.setCancelable(false);
}
그리고 마지막으로 당신은
@Override
public void senddata(String title,String optionaltag) {
this.videoTitle=title;
this.optionalTag=optionaltag;
}
내가이 게시물은 대한 대화 조각을 사용하는 사람들을 위해 도움이 될 것이라고 생각하는 방법을 인터페이스를 구현 (즉,이 대화 상자 조각 내부에 선언)과 오버라이드 (override) 처음으로 . 나는 그 해결책을 찾기 위해 고심했다. 그리고 이것은 미래에 누군가의 문제를 해결할 수 있기를 바랍니다. (죄송합니다 언어)
- 1. DialogFragment에서 단편으로 데이터를 보내는 방법은 무엇입니까?
- 2. ChildViewHolder의 DialogFragment에서 데이터를 가져 오는 방법은 무엇입니까?
- 3. 데이터를 가져 오는 방법은 무엇입니까?
- 4. netbeans에서 콘솔에서 데이터를 가져 오는 방법은 무엇입니까?
- 5. 웹 페이지에서 데이터를 가져 오는 방법은 무엇입니까?
- 6. JSON 객체에서 데이터를 가져 오는 방법은 무엇입니까?
- 7. jsf에서 HTMLDataTable의 데이터를 가져 오는 방법은 무엇입니까?
- 8. iframe에서 android로 데이터를 가져 오는 방법은 무엇입니까?
- 9. jsonarray에서 특정 데이터를 가져 오는 방법은 무엇입니까?
- 10. Google지도에서 내지도 데이터를 가져 오는 방법은 무엇입니까?
- 11. 파이썬으로 SNMP에서 데이터를 가져 오는 방법은 무엇입니까?
- 12. 웹 사이트에서 데이터를 가져 오는 방법은 무엇입니까?
- 13. 보기에없는 목록보기에서 데이터를 가져 오는 방법은 무엇입니까?
- 14. uri 형태로 데이터를 가져 오는 방법은 무엇입니까?
- 15. VBA에서 PowerPivot 데이터를 가져 오는 방법은 무엇입니까?
- 16. JSON 파일에서 데이터를 가져 오는 방법은 무엇입니까?
- 17. 양식에서 여러 데이터를 가져 오는 방법은 무엇입니까?
- 18. 테이블에서 배열 데이터를 가져 오는 방법은 무엇입니까?
- 19. Laravel에서 관계의 데이터를 가져 오는 방법은 무엇입니까?
- 20. 많은 스레드에서 데이터를 가져 오는 방법은 무엇입니까?
- 21. HDFS에서 데이터를 가져 오는 방법은 무엇입니까? 하이브?
- 22. 가끔 Firebase에서 데이터를 가져 오는 방법은 무엇입니까?
- 23. CoffeeScript로 JSON에서 데이터를 가져 오는 방법은 무엇입니까?
- 24. codeigniter ajax에서 데이터를 가져 오는 방법은 무엇입니까?
- 25. JSON 개체에서 데이터를 가져 오는 방법은 무엇입니까?
- 26. 그림에서 메타 데이터를 가져 오는 방법은 무엇입니까?
- 27. 배열에서 데이터를 가져 오는 방법은 무엇입니까?
- 28. 다차원 PSafeArray에서 데이터를 가져 오는 방법은 무엇입니까?
- 29. 사용자에게 데이터를 전달하고 가져 오는 방법은 무엇입니까?
- 30. 서블릿에서 데이터를 가져 오는 방법은 무엇입니까?
http://stackoverflow.com/questions/17966605/fragments-how-to-start-dialog-from-fragment/17968000#17968000. 여기서 부울 값을 반환하는 대신 edittext 값을 반환합니다. 또는 인터페이스를 사용하십시오. – Raghunandan
나는 그것을 시도 할 것이다)) 많이 고마워요 –