-1

I'm having a custom layout xml file named login_form with a LinearLayout root named login_form_root. I'm trying to display this layout using dialog but can't get values from EditText as I get cannot resolve method findViewById inside onCreateDialog.

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.login_form, null));
builder.setPositiveButton(okText, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
       View myView = inflater.inflate(R.layout.login_form, (ViewGroup) findViewById(R.id.login_form_root));
       EditText userEmail = (EditText) myView.findViewById(R.id.email_address);
       userEmailValue = userEmail.getText().toString();
       Toast.makeText(getActivity(), userEmailValue, Toast.LENGTH_SHORT).show();
        }

Error is here:-

"(ViewGroup) findViewById(R.id.login_form_root)"

so how can I inflate the custom layout to get EditText values?

ankuranurag2
  • 2,300
  • 15
  • 30
PHP User
  • 2,350
  • 6
  • 46
  • 87

1 Answers1

4

You should save the View when inflate it, then you can use it later


        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
        final View view = layoutInflater.inflate(R.layout.login_form, null);
        builder.setView(view);
        AlertDialog dialog = builder.create();

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                EditText userEmail = (EditText) view.findViewById(R.id.email_address);
                String userEmailValue = userEmail.getText().toString();
            }
        });


PHP User
  • 2,350
  • 6
  • 46
  • 87
Ken
  • 96
  • 5