2016-09-21 32 views
-1

我有一個窗體的對話框,用戶輸入一些數據,我想獲取該數據,但是當我將數據記錄到查看它我什麼都沒有。我有一個對話框中的這種形式,但我無法獲得輸入框的值

public Dialog onCreateDialog (Bundle savedInstanceState) 
    { 

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 

     final View view = inflater.inflate(R.layout.incident_form,null); 


     builder.setView(inflater.inflate(R.layout.incident_form,null) 
       .setPositiveButton("Submit", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) 
        { 
         title = (EditText) view.findViewById(R.id.report_title); 
         recom = (EditText) view.findViewById(R.id.report_recommendation); 
         content = (EditText) view.findViewById(R.id.report_content); 

         titleString = title.getText().toString(); 
         recomString = recom.getText().toString(); 
         contentString = content.getText().toString(); 

         submitForm(titleString,recomString,contentString); 
         dialog.cancel(); 
        } 
       }) 
       .setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
       { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }); 
     return builder.create(); 
    } 
+0

當您使用自定義佈局時,請移除setNegativeButton和setPositivetiveButton。 –

+1

爲什麼你包括你的佈局兩次? –

+0

@PreetikaKaur感謝您指出這一點,我沒有注意到它。解決了這個問題 – lagfvu

回答

1

您已包括佈局兩次在對話框裏你請。 要麼的setView(查看),你應該使用,因爲鑑於你已經初始化頂部這樣

final View view = inflater.inflate(R.layout.incident_form,null); 

或intialize它在你的setView()方法就像你正在做下面

的setView(inflater.inflate(R.layout.incident_form,NULL)

。您添加了兩次,這就是爲什麼發生這種情況。

很樂意幫助你...

0

您需要修改你這樣的代碼:

public Dialog onCreateDialog (Bundle savedInstanceState) 
    { 

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 

     final View view = inflater.inflate(R.layout.incident_form,null); 
         title = (EditText) view.findViewById(R.id.report_title); 
         recom = (EditText) view.findViewById(R.id.report_recommendation); 
         content = (EditText) view.findViewById(R.id.report_content); 


     builder.setView(inflater.inflate(R.layout.incident_form,null) 
       .setPositiveButton("Submit", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) 
        { 

         titleString = title.getText().toString(); 
         recomString = recom.getText().toString(); 
         contentString = content.getText().toString(); 

         submitForm(titleString,recomString,contentString); 
         dialog.cancel(); 
        } 
       }) 
       .setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
       { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }); 
     return builder.create(); 
    } 
0

實例化EditText這樣的:

EditText storyNameTxt = (EditText) getDialog().findViewById(R.id.dialog_add_story_name); 

getDialog爲我做的伎倆。

相關問題