How to add two edit text fields or views in an AlertDialog box?

I want to add two edit text fields in an alert dialog box. As simple as the solution sounds I have not been able to gather a working one as of yet. I am not able to set the two (edit text) views simultaneously.

Please comment in case you want to see any further code.

  • Remove application icon and title from Honeycomb action bar
  • Facebook Android SDK ProfilePictureView caching
  • Android usb host api and USB storage
  • Set default value of an integer column SQLite
  • BitmapFactory.decodeFile returns null even image exists
  • Unfortunately app has stopped in Android Emulator
  •                 alertDialog.setTitle("Values");
                    final EditText quantity = new EditText(SecondScan.this);
                    final EditText lot = new EditText(SecondScan.this);
    
                    quantity.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
                    lot.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    
                    Project=arr[0].toString();
                    Item=arr[1].toString();
    
    
                    alertDialog.setMessage( "Employee No. : " + (Login.user).trim()+
                            "\nWarehouse      : " + (FirstScan.Warehouse).trim()+ 
                            "\nLocation           : " + (FirstScan.Location).trim()+ 
                            "\nProject              : " + Project.trim() + 
                            "\nItem                   : " + Item.trim() + 
                            "\nLot                      : " + Lot.trim()+  
                            "\n\nQuantity   :" );
                    alertDialog.setView(quantity);
                        alertDialog.setView(lot);
     // the bit of code that doesn't seem to be working.
    
    
                    alertDialog.setCancelable(false);
                    alertDialog.setPositiveButton("Update",  new DialogInterface.OnClickListener() { 
    
                        public void onClick(DialogInterface dialog, int id) {
                            //ACTION
                        }
                    });
    
                    AlertDialog alert = alertDialog.create();
                    alert.show();
    

    I want the first edit text to occur after the lot and the second one after the quantity whereas only one of them seems to be working when I try pushing in both the views.

    UPDATE : As it turns out there is in fact no method of adding more than one view alone to an alert dialog box without having to create a layout for it.

    Related posts:

    Error while creating own jar library for Android project
    How to cancel Toast created in a different method on android?
    How do I decode URL in Android Application
    Android: How store url in string.xml resource file?
    savedInstanceState is always null, yet onSaveInstanceState() is always called
    NullPointerException from getExtras()
  • Import Facebook SDK on Android Studio 0.5.1
  • Initialize preferences from XML in the main Activity
  • System Crash When Overriding shouldInterceptRequest in WebViewClient
  • Android SQLiteException: bind or column index out of range problem
  • Android + XAMARIN + Force screen to stay in “Portrait” mode (using AndroidManifest)
  • Rendering problems missing styles after every update
  • 4 Solutions collect form web for “How to add two edit text fields or views in an AlertDialog box?”

    See Creating a Custom Layout in android.

    enter image description here

    EDIT

    alertDialog.setTitle("Values");
    final EditText quantity = new EditText(SecondScan.this);
    final EditText lot = new EditText(SecondScan.this);
    
    quantity.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    lot.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    
    Project=arr[0].toString();
    Item=arr[1].toString();
    
    LinearLayout ll=new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);
    ll.addView(quantity);
    ll.addView(lot);
    alertDialog.setView(ll);
    
    alertDialog.setCancelable(false);
    alertDialog.setPositiveButton("Update",  new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            //ACTION
        }
    });
    
    AlertDialog alert = alertDialog.create();
    alert.show();
    

    I used LinearLayout for a login pop-up:

    public final String POPUP_LOGIN_TITLE="Sign In";
    public final String POPUP_LOGIN_TEXT="Please fill in your credentials";
    public final String EMAIL_HINT="--Email--";
    public final String PASSWORD_HINT="--Password--";
    
    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    
            alert.setTitle(POPUP_LOGIN_TITLE);
            alert.setMessage(POPUP_LOGIN_TEXT);
    
            // Set an EditText view to get user input 
            final EditText email = new EditText(this);
            email.setHint(EMAIL_HINT);
            final EditText password = new EditText(this);
            password.setHint(PASSWORD_HINT);
            LinearLayout layout = new LinearLayout(getApplicationContext());
            layout.setOrientation(LinearLayout.VERTICAL);
            layout.addView(email);
            layout.addView(password);
            alert.setView(layout);
    
            alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
    
              // Do something with value!
              }
            });
    
            alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int whichButton) {
                // Canceled.
              }
            });
    
            alert.show();
    

    You should create a vertical LinearLayout on which you can add your EditTexts. Then use alertDialog.setView() with the LinearLayout.

    Look here for mor infos: How to implement a custom AlertDialog View
    or here How to add two edit text fields in an alert dialog

    Why don’t you make a entirely custom layout for it?

    Here is a custom pop up i use for showing a list of categorys and letting the user pick one.

    public class CategoryPickerFragment extends DialogFragment implements OnItemClickListener{
    private CategoryReceiver receiver;
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();
    
        // Inflate and set the layout for the dialog
        // Pass null as the parent view because its going in the dialog layout
        View view = inflater.inflate(R.layout.category_picker_fragment, null);
    
        builder.setView(view);
        AlertDialog ad = builder.create();
    
        CategoryList categoryList = (CategoryList) view.findViewById(R.id.clCategories);
        categoryList.setOnItemClickListener(this);
    
        return ad;
    }
    public void setCategoryReceiver(CategoryReceiver receiver){
        this.receiver = receiver;
    }
    
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Category category = ((CategoryListChild)view).getCategory();
        receiver.setCategory(category);
        this.dismiss();
    }
    

    Note that i extend a DialogFragment, override the OnCreateDialog a alertDialog with a custom layout and then show it to the user.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.