We will create a custom dialog box with EditText and Button and pass the result to main activity.

2. Open activity_main.xml and add a button to show dialog box.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" android:orientation="vertical" tools:context="com.gunjan.andriodcodesnippets.MainActivity" android:gravity="center_vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/bt_show" android:text="Show Dialog" android:layout_gravity="center"/> </LinearLayout>
3. Create a new layout custom_dialog.xml which contains the layout of dialog box. Here, add one EditText and one Button.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="300dp" android:layout_height="300dp" android:gravity="center" android:padding="15dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enter Name" android:textSize="25sp" android:layout_marginBottom="20dp"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Name" android:id="@+id/et_name" android:textSize="20sp" android:layout_marginBottom="20dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save" android:id="@+id/bt_save"/> </LinearLayout>
4. Create a new class CustomDialog.java and type the following code-
public class CustomDialog extends Dialog { private Context context; private EditText myName; private Button myButton; private DialogResult dialogResult; public CustomDialog(Context context) { super(context); this.context=context; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.custom_dialog); myName=(EditText)findViewById(R.id.et_name); myButton=(Button)findViewById(R.id.bt_save); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name=myName.getText().toString(); if(dialogResult!=null){ dialogResult.finish(name); } dismiss(); } }); } public void setDialogResult(DialogResult dialogResult){ this.dialogResult=dialogResult; } public interface DialogResult{ void finish(String name); } }
5. Open MainActivity.java and show dialog on click of button.
public class MainActivity extends AppCompatActivity { Button myButtonShow; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context=this; myButtonShow=(Button)findViewById(R.id.bt_show); myButtonShow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CustomDialog customDialog=new CustomDialog(context); customDialog.show(); customDialog.setDialogResult(new CustomDialog.DialogResult() { @Override public void finish(String name) { Toast.makeText(context,name,Toast.LENGTH_LONG).show(); } }); } }); } }
6. Run the project.

Comments
Post a Comment