Hi guys, here you have a tutorial to create custom pop up dialog.
YouTube tutorial, code snippets and GitHub source code. Enjoy!
public class MainActivity extends AppCompatActivity { private CardView cv1; private ActionDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViews(); setListeners(); } private void findViews() { cv1 = findViewById(R.id.cv_feature1); } private void setListeners() { cv1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog = new ActionDialog(R.string.title_no_location_dialog, R.string.subtitle_no_location_dialog, R.string.understood_label, MainActivity.this); dialog.showDialog(); } }); } }
public class ActionDialog { private TextView tvTitle; private TextView tvSubtitle; private TextView tvAction; private Activity activity; private Dialog dialog; public ActionDialog(@StringRes int title, @StringRes int subtitle, @StringRes int action, Activity activity) { this.activity = activity; setDialog(); findViews(); setData(title, subtitle, action); } public void showDialog(){ dialog.show(); } public void dismiss(){ dialog.dismiss(); } private void setDialog() { dialog = new Dialog(activity); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.custom_dialog); } private void findViews(){ tvTitle = dialog.findViewById(R.id.tv_title); tvSubtitle = dialog.findViewById(R.id.tv_subtitle); tvAction = dialog.findViewById(R.id.tv_action); } private void setData(int title, int subtitle, int action) { tvTitle.setText(title); tvSubtitle.setText(subtitle); tvAction.setText(action); } }
custom_dialog.xml <?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:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="20dp"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginBottom="16dp" android:gravity="center" android:textSize="18sp" tools:text="Title custom dialog" android:textAllCaps="true" android:textColor="@color/title" /> <TextView android:id="@+id/tv_subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginBottom="36dp" android:gravity="center" android:textSize="18sp" android:textColor="@color/subtitle_dark" tools:text="Subtitle custom dialog" /> <TextView android:id="@+id/tv_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_action" android:layout_gravity="center" android:paddingStart="36dp" android:paddingEnd="36dp" android:paddingTop="10dp" android:paddingBottom="10dp" android:textSize="18sp" android:textColor="@color/white" tools:text="Action" android:textAllCaps="true" /> </LinearLayout>