How do I create this type of AlertDialog on android?

0

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.

    
asked by Mauro 05.09.2018 в 23:07
source

1 answer

0

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

    
answered by 11.09.2018 в 02:34