2014-09-24 4 views
0

제목과 마찬가지로 사용자 정의 대화 상자 안에있는 EditText에서 텍스트를 가져올 수 있습니까?대화 상자 내에서 edittext에서 텍스트를 가져 오는 방법

이 내 dialogfragment에서이 onCreateDialog 방법입니다 : 나는 그것이 동작하지 않습니다

public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    LayoutInflater inflater = getActivity().getLayoutInflater(); 

    SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
    final SharedPreferences.Editor editor = sharedPref.edit(); 

    builder.setView(inflater.inflate(R.layout.name_dialog, null)) 
      .setPositiveButton(R.string.name_ok, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        EditText nameEditText = (EditText) getActivity().findViewById(R.id.name_text_view); 
        editor.putString(getString(R.string.name_key), nameEditText.getText().toString()); 
        editor.commit(); 
       } 
      }) 
      .setNegativeButton(R.string.name_cancel, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        NameDialogFragment.this.getDialog().cancel(); 
       } 
      });  
    return builder.create(); 
} 

.. 그때 내가 확인을 누르면 그냥 충돌과 나에게 널 포인터를주는 글고 치기에 뭔가를 쓰기 이 라인에 오류 :

editor.putString(getString(R.string.name_key), nameEditText.getText().toString()); 
+1

'(글고) getActivity()'->'(글고) dialog' – njzk2

답변

3

를 사용해보십시오. 그것은 활동의 일부가 아니며 대화의 일부입니다. 그래서보기 위해 대화 상자를 확인합니다

Dialog dialogView = dialog.getDialog(); 
EditText paymentEt = (EditText) dialogView.findViewById(R.id.edittext_payment); 
+0

감사합니다 :) 내가 대신 getActivity의 다른 뭔가를 사용해야 할 수도 있습니다 생각()하지만 fragmentmanager를 시도했다. –

0

대신 사용

EditText nameEditText = (EditText) getActivity().findViewById(R.id.name_text_view);

당신은 잘못보기에서 글고 찾고있는이

Dialog dialg = (Dialog) dialog; 
EditText et = (EditText) dialg.findViewById(R.id.search_input_text); 
val = et.getText().toString(); 
관련 문제