DialogFragment에서 값을 가져오고 싶습니다 : EditText에 값을 입력하고 그것에 관한 Fragment의 TextView를 변경하십시오.안드로이드 DialogFragment가 getActivity()에서 ClasscastExeption을 던졌습니다.
내 조각
public class MyPageActivity extends Fragment implements MyPageNicknameDialog.onNicknameListener{
...
@Override
public void setNicknameListener(String arg){
mypage_nickname_text.setText(arg);
}
}
대화
public class MyPageNicknameDialog extends DialogFragment{
...
public interface onNicknameListener{
void setNicknameListener(String arg);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
dialogView = inflater.inflate(R.layout.dialog_nickname_mypage, container, false);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
nickname_dialog_edittext = (EditText)dialogView.findViewById(R.id.nickname_dialog_edittext);
nickname_dialog_edittext.requestFocus();
nickname_dialog_edittext.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
// Here thorws ClasscastExeption
onNicknameListener activity = (onNicknameListener) getActivity();
activity.setNicknameListener(nickname_dialog_edittext.getText().toString());
getDialog().dismiss();
return false;
}
});
//init();
return dialogView;
}
}
나는 많은 예를 찾아했지만 확인할 수 없습니다
05-21 22:48:42.725: E/AndroidRuntime(17131): java.lang.ClassCastException: com.hhh.kiznic.MainFragmentActivity cannot be cast to com.hhh.kiznic.MyPageNicknameDialog$onNicknameListener
05-21 22:48:42.725: E/AndroidRuntime(17131): at com.hhh.kiznic.MyPageNicknameDialog$1.onEditorAction(MyPageNicknameDialog.java:54)
05-21 22:48:42.725: E/AndroidRuntime(17131): at android.widget.TextView.onEditorAction(TextView.java:4973)
05-21 22:48:42.725: E/AndroidRuntime(17131): at com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:138)
05-21 22:48:42.725: E/AndroidRuntime(17131): at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:297)
05-21 22:48:42.725: E/AndroidRuntime(17131): at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
05-21 22:48:42.725: E/AndroidRuntime(17131): at android.os.Handler.dispatchMessage(Handler.java:99)
05-21 22:48:42.725: E/AndroidRuntime(17131): at android.os.Looper.loop(Looper.java:137)
05-21 22:48:42.725: E/AndroidRuntime(17131): at android.app.ActivityThread.main(ActivityThread.java:5493)
05-21 22:48:42.725: E/AndroidRuntime(17131): at java.lang.reflect.Method.invokeNative(Native Method)
05-21 22:48:42.725: E/AndroidRuntime(17131): at java.lang.reflect.Method.invoke(Method.java:525)
05-21 22:48:42.725: E/AndroidRuntime(17131): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
05-21 22:48:42.725: E/AndroidRuntime(17131): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
05-21 22:48:42.725: E/AndroidRuntime(17131): at dalvik.system.NativeStart.main(Native Method)
로그. 당신이 원인과 해결책을 안다면 저를 도우십시오.
당신을 감사합니다 너무 많은 선생님 !! :) – user3552715