I am new to Android programming and I would like to know how to create these types of alerts with the title in blue plus the line of underline since those that I have tried make them different to this style.
Hi, I hope this is what I teach how to create a personalized dialogue:
1- We will create an xml for the dialogue that will be this:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Brillo"
android:textColor="@color/blue"
android:textSize="25sp" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="20dp"
android:background="@color/blue" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:text="Brillo automatico"
android:textSize="18sp" />
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/one_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:text="Cancelar" />
<Button
android:id="@+id/two_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:text="Aceptar" />
</LinearLayout>
</LinearLayout>
2- We create a class called GlitterDialog that will take care of the creation of the dialogue:
public class GlitterDialog {
private AlertDialog alertDialog;
private OptionsGlitter optionsGlitter;
GlitterDialog(Activity activity) {
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(activity);
View view = activity.getLayoutInflater().inflate(R.layout.glitter_dialog, null);
alertBuilder.setView(view);
Button buttonOne = view.findViewById(R.id.one_button);
Button buttonTwo = view.findViewById(R.id.two_button);
buttonOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
optionsGlitter.cancel();
}
});
buttonTwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
optionsGlitter.accept();
}
});
alertDialog = alertBuilder.create();
}
public void show() {
alertDialog.show();
}
public void cancel() {
alertDialog.cancel();
}
interface OptionsGlitter {
void cancel();
void accept();
}
public void setOnclickOptionsGlitter(OptionsGlitter optionsGlitter) {
this.optionsGlitter = optionsGlitter;
}
}
Calling the activity would be like this:
private GlitterDialog glitterDialog;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
glitterDialog = new GlitterDialog(this);
glitterDialog.setOnclickOptionsGlitter(new GlitterDialog.OptionsGlitter() {
@Override
public void cancel() {
glitterDialog.cancel();
}
@Override
public void accept() {
Toast.makeText(MainActivity.this, "Completo", Toast.LENGTH_SHORT).show();
glitterDialog.cancel();
}
});
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
glitterDialog.show();
}
});
}
This way you can reuse your dialogues in the simplest way.
- I hope it helps