Null Validation on EditText box in Alert Dialog - Android

后端 未结 6 1360
有刺的猬
有刺的猬 2021-01-02 23:15

I am trying to add some text validation to an edit text field located within an alert dialog box. It prompts a user to enter in a name.

I want to add some validatio

6条回答
  •  忘掉有多难
    2021-01-02 23:54

    What you should do is to create a custom xml layout including a textbox and an Ok button instead of using .setPositiveButton. Then you can add a click listener to your button in order to validate the data and dismiss the dialog.

    It should be used in CreateDialog:

    protected Dialog onCreateDialog(int id) 
    {
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
    if (id==EDIT_DIALOG)
    {
                final View layout = inflater.inflate(R.layout.edit_dialog, (ViewGroup) findViewById(R.id.Layout_Edit));
    
                final Button okButton=(Button) layout.findViewById(R.id.Button_OkTrack);
                final EditText name=(EditText) layout.findViewById(R.id.EditText_Name);
                okButton.setOnClickListener(new View.OnClickListener() 
                {
                    public void onClick(View v) {
                        String textString = trackName.getText().toString(); 
                        if (textString != null && textString.trim().length() ==0)
                        {
                            Toast.makeText(getApplicationContext(), "Please enter...", Toast.LENGTH_LONG).show();
                        } else
                            removeDialog(DIALOG_EDITTRACK);
                    }
                });            
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setView(layout);
                builder.setTitle("Edit text");
    
                AlertDialog submitDialog = builder.create();            
                return submitDialog;
    }
    

提交回复
热议问题