2017-08-24 32 views
1

我一直在寻找了一段时间,我还没有找到解决我的这个问题还没有文字严重性,我有几个项目(Here it is)如何改变alertdialog

但是当你一个alertdialog可以看到,文本与左边对齐。有没有办法将项目文本与中心对齐?

这里有点我的代码

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); 
      } 
     }); 

    } 

在此先感谢。

+0

为您显示警告对话框代码 –

+0

发表您对话的XML –

+0

@NileshRathod只是做! –

回答

0

您可以在AlertDialog中使用自定义视图。

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

在您的布局文件中添加您的文本的自定义要求。

documenation

如果你想在一个对话框中自定义布局,创建布局,并通过您的AlertDialog.Builder对象调用的setView()将其添加到AlertDialog。

+0

这确实工作,但我不能改变项目的颜色,重力等我只能够设置一个全新的布局alertDialog。 –

+0

您必须在相对字段的布局文件中定义文本颜色,比重。 –

1

可以使用自定义对话框,像这样创建这样

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

现在的自定义布局创建自定义dailog llike下面的代码

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

你需要申请主题为初始状态的对话框

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

,并在您theme.xml或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

声明主题此代码将工作

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();