2017-08-24 3 views
1

Je cherchais depuis un certain temps et je ne l'ai pas trouvé la solution à ce problème encore à moi, j'ai un AlertDialog avec quelques articles (Here it is)Comment changer la gravité du texte sur AlertDialog

Mais comme vous peut voir, le texte est aligné à gauche. Y a-t-il un moyen d'aligner le texte des articles au centre?

est ici un peu de mon code

chosenItem.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // setup the alert builder 
       AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
       builder.setTitle("Choose a category"); 
       // add a list 
       String[] items = {"Hey", "stack", "overflow", "please", "help", "Medical", "Ammo"}; 
       // String[] items = {"Weapons", "Tools", "Items", "Clothing", "Components", "Medical", "Ammo"}; 

       builder.setItems(items, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         switch (which) { 
          case 0: 
           reciclador(3, rSlotFrame, rSlotText, rSlotProbabilidade, 30, 50, 1, 0, 100, 100, 100, 0, "cloth_icon", "metalfrags_icon", "sewingkit_icon", ""); 
           break; 
          case 1: 

          case 2: 

          case 3: 

          case 4: 

          case 5: 

          case 6: 

         } 
        } 
       }); 
       AlertDialog dialog = builder.create(); 
       dialog.show(); 
       dialog.getWindow().setLayout(800, 700); 
      } 
     }); 

    } 

Merci à l'avance.

+0

vous montrer le code de dialogue d'alerte –

+0

Poster xml de votre dialogue –

+0

@NileshRathod Tout a fait ! –

Répondre

0

Vous pouvez utiliser la vue personnalisée dans AlertDialog.

AlertDialog.Builder alertDialog = new AlertDialog.Builder(YourActivity.this); 
View alertView = getLayoutInflater().inflate(R.layout.fragment_dialog, null, false); 
alertDialog.setView(alertView); 

Ajoutez votre exigence personnalisée de votre texte dans votre fichier de disposition.

De documenation:

Si vous souhaitez une mise en page personnalisée dans une boîte de dialogue, créez une mise en page et l'ajouter à un AlertDialog en appelant setView() sur votre objet AlertDialog.Builder.

+0

Cela a fonctionné d'une manière ou d'une autre, mais je ne peux pas changer la couleur des objets, la gravité, etc. Je ne peux que définir une nouvelle mise en page pour l'alertDialog. –

+0

Vous devez définir la couleur du texte, la gravité dans le fichier de disposition du champ relatif. –

1

vous pouvez utiliser dialogue personnalisée pour que, comme cela crée une mise en page personnalisée comme celui-ci

<?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"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="title" 
     android:textColor="#000" /> 

    <TextView 
     android:id="@+id/tvTitle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="Lorem Ipsum is simply dummy text " /> 


    <TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:text="description" /> 

</LinearLayout> 

maintenant créer dailog personnalisés llike ci-dessous le code

final Dialog dialog = new Dialog(LoginActivity.this); 
dialog.setContentView(R.layout.custom_dialog_layout); 
Textview tvTitle; 
tvTitle = (Textview) dialog.findViewById(R.id.tvTitle); 
Window window = dialog.getWindow(); 
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT); 
window.setGravity(Gravity.BOTTOM); 

tvTitle.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     // perform your action here 
    } 
}); 
dialog.show(); 
0

vous devez appliquer thème pour le dialogue sur l'état initial

AlertDialog dialog = new AlertDialog(context, R.theme.DialogTheme); 

et déclarer le thème dans votre theme.xml ou styles.xml

<style name="DialogTheme" parent="Animation.AppCompat.Dialog"> 
    <item name="android:itemTextAppearance">@style/DialogTextAppear</item> 

</style> 

<style name="DialogTextAppear" parent="TextAppearance.AppCompat"> 
    <item name="android:gravity">center</item> 
</style> 
0

Ce code sera le travail

android.support.v7.app.AlertDialog.Builder builder = 
        new android.support.v7.app.AlertDialog.Builder(mContext, R.style.MyDialogTheme); 

      TextView resultMessage = new TextView(mContext); 
      resultMessage.setTextSize(mContext.getResources().getDimension(R.dimen.padding_15)); 
      resultMessage.setText(message); 
      resultMessage.setGravity(Gravity.CENTER); 
      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
      resultMessage.setLayoutParams(lp); 
      builder.setView(resultMessage); 
      builder.setTitle(title); 


      builder.setPositiveButton(mPositiveBTName, 
        new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          // positive button logic 
          action.methodDone(); 
          dialog.dismiss(); 
         } 
        }); 

      builder.setNeutralButton(mNegativeBTName, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int i) { 
        action.methodCancel(); 
        dialog.dismiss(); 
       } 
      }); 

      android.support.v7.app.AlertDialog dialog = builder.create(); 
      // display dialog 


      dialog.show();