在AlertDialog中设置EditText

时间:2014-01-23 07:04:48

标签: android android-layout alertdialog layout-inflater

我创建了一个Custom AlertDialog,我正在尝试为EditTexts设置文本。我试过了

public class CheckListDialog extends DialogFragment {
    private View view;

    public CheckListDialog(View view) {
        this.view = view;
    }

    @Override
    public AlertDialog onCreateDialog(Bundle savedInstanceState) {         
        LayoutInflater inflater = getActivity().getLayoutInflater();    

        View dialogLayout = inflater.inflate(R.layout.dialog_checklist, null);

        EditText etCost = (EditText) dialogLayout.findViewById(R.id.etCost);
        EditText etOdoReading = (EditText) dialogLayout.findViewById(R.id.etOdometer);
        etOdoReading.setText("bla");
        etCost.setText("tada");

        AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(Reminders.this, android.R.color.transparent));
         builder.setView(inflater.inflate(R.layout.dialog_checklist, null))
               .setTitle("jaja")
               .setPositiveButton("Add", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {

                   }
               })
               .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {


                   }
               });      
        return builder.create();
        }
    }

EditTexts为空,不包含值。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

替换

builder.setView(inflater.inflate(R.layout.dialog_checklist, null))

builder.setView(dialogLayout)

您正在修改一个布局中的edittexts,然后为该对话框充气新布局。

答案 1 :(得分:0)

对于此类操作,您必须使用自定义布局来扩展到您的 CheckListDialog 类。 DialogFragment将为您提供根据您的要求自定义对话框的完全自由。

您可以参考此tutorial