¿Cómo puedo cambiar el color de fondo de la barra de título de una casilla de alerta?Establecer color de fondo de la barra de título AlertBox
AlertDialog.Builder alert=new AlertDialog.Builder(getParent());
alert.setTitle("sample");
alert.show();
¿Cómo puedo cambiar el color de fondo de la barra de título de una casilla de alerta?Establecer color de fondo de la barra de título AlertBox
AlertDialog.Builder alert=new AlertDialog.Builder(getParent());
alert.setTitle("sample");
alert.show();
La manera más fácil es a subclase un cuadro de diálogo mediante la creación de una clase que se extiende de diálogo e implementa el constructor que tome estilo como un parámetro. Luego, haga su propio diseño personalizado.
El Código para mostrar el cuadro de diálogo:
private void showDialog()
{
Custom_Dialog dialog = new Custom_Dialog(this, R.style.myCoolDialog);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.icon);
dialog.show();
}
El código para la subclase:
package com.stackoverflow;
import android.app.Dialog;
import android.content.Context;
public class Custom_Dialog extends Dialog {
protected Custom_Dialog(Context context, int theme) {
super(context, theme);
// TODO Auto-generated constructor stub
}
}
la estilo: myCoolDialog.xml
<resources>
<style name="myCoolDialog" parent="android:Theme.Dialog">
<item name="android:windowBackground">@drawable/blue</item>
<item name="android:colorForeground">#f0f0</item>
</style>
</resources>
y dura el diseño: c ustom_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
Hola CornflakesDK, quiero mostrar la lista de contenido en el cuadro de diálogo de alerta. El color de fondo del título cambió, pero no dislpay, la lista de contenido. Estoy usar este código para mostrar la lista de contenido alert.setItems (list, new DialogInterface.OnClickListener() { @Override public void onClick (Diálogo DialogInterface, int pos) { TODO Método autogenerado stub}}); – Jeeva
A continuación, cambie el diseño. Puede agregar sus propios botones y botones. EnClickListeners si es necesario. – CornflakesDK
Gracias, listView funciona bien. – Jeeva
Sólo puede establecer título personalizado como éste
LayoutInflater inflater = this.getLayoutInflater();
View titleView = inflater.inflate(R.layout.custom_title, null);
new AlertDialog.Builder(SubCategoryActivity.this)
.setCustomTitle(titleView);
y en la disposición custom_title puede crear título personalizado como éste
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:id="@+id/llsubhead"
android:background="@color/colorPrimary">
<TextView
android:id="@+id/exemptionSubHeading4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:text="Exemption Sub Head"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
A partir de la respuesta y @CornflakesDK @ espíritu de hielo, pensé que puedes usar la implementación actual AlertDialog.Builder
para hacer el diálogo personalizado y hacerlo fácil de mantener.
CustomDialogBuilder.java
public class CustomDialogBuilder extends AlertDialog.Builder {
private View view;
public CustomDialogBuilder(Context context) {
super(context);
view = LayoutInflater.from(getContext()).inflate(R.layout.custom_dialog_title, null);
setCustomTitle(view);
}
@Override
public Builder setTitle(int titleId) {
TextView titleTextView = view.findViewById(R.id.exemptionSubHeading4);
titleTextView.setText(getContext().getString(titleId));
return this;
}
@Override
public Builder setTitle(CharSequence title) {
TextView titleTextView = view.findViewById(R.id.exemptionSubHeading4);
titleTextView.setText(title);
return this;
}
}
custom_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/llsubhead"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="@color/black"
android:orientation="vertical">
<TextView
android:id="@+id/exemptionSubHeading4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="15dp"
android:layout_gravity="center"
android:text="Exemption Sub Head"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
Dentro de su código de actividad,
new CustomDialogBuilder(MyActivity.this)
.setTitle(R.string.actions)
.setItems(R.array.items_actions, (dialog, which) -> {
// handle items
}).create().show();
A continuación, puede tener un estilo dentro de la DialogBuilder y también utilizar las funciones de AlertDialog.Builder.
Puede ser que esta ayuda: [. La creación de cuadro de alerta personalizada En Android] (http://stackoverflow.com/questions/3928562/creating-custom-alert-box-in-android) –
mejor respuesta que he conseguido hasta ahora : http://blog.supenta.com/2014/07/02/how-to-style-alertdialogs-like-a-pro/ –