0
편집 텍스트가있는 dialogFragment가 있습니다. 대화 상자의 긍정적 인 버튼을 클릭 할 때 텍스트를 부모 액티비티로 전달하고 싶지만 액티비티에 구현 된 인터페이스의 메서드를 호출하지 않는 것 같습니다. 코드 : DialogFragment조각과 활동간에 통신 할 수 없습니다.
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
String title = getArguments().getString("title");
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
alertDialogBuilder.setTitle(title);
alertDialogBuilder.setView(R.layout.fragment_newfile);
alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listener.onFileTyped(textNewFile.getText().toString());
Log.w("Positive","Button"); //This log is showed
}
});
alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
MainActivity
@Override
public void onFileTyped(String fileName) {
Log.w("New File", ""); //This log is not showed
MainFragment frag = (MainFragment) getSupportFragmentManager().findFragmentByTag(TAG_FRAGMENT);
File newFile = new File(frag.getCurrentDir().getAbsolutePath(), "fileName");
}
리스너 할당
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if (activity instanceof onFileTypedListener) {
listener = (onFileTypedListener) activity;
} else {
throw new RuntimeException(activity.toString()
+ " must implement OnFragmentInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
listener = null;
}
당신이 보여줄 수'listener' 다른 무엇이든이있는 경우 당신과 내 코드를 비교하여 볼? –
내 게시물을 편집했습니다. –
대화 상자 팝업을 통해 수신기가 분리됩니다. –