Насколько я вижу из кода AlertDialog
и AlertController
, вы не можете получить доступ к TextView
, ответственным за сообщение и заголовок.
Вы можете использовать отражение для достижения поля mAlert
в экземпляре AlertDialog, а затем снова использовать отражение для доступа к mMessage
и mTitle
полям mAlert
.Хотя я бы не рекомендовал этот подход, так как он опирается на внутренние компоненты (которые могут измениться в будущем).
В качестве другого (и, вероятно, гораздо лучшего) решения вы можете применить собственную тему через конструктор AlertDialog
,Это позволит вам выровнять по правому краю все TextView
с в этом диалоговом окне.
protected AlertDialog (Context context, int theme)
Это должен быть более простой и надежный подход.
Вот пошаговые инструкции:
Шаг 1. Создание res/values/styles.xml
файла.Вот его содержание:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="RightJustifyTextView" parent="@android:style/Widget.TextView">
<item name="android:gravity">right|center_vertical</item>
</style>
<style name="RightJustifyDialogWindowTitle" parent="@android:style/DialogWindowTitle" >
<item name="android:gravity">right|center_vertical</item>
</style>
<style name="RightJustifyTheme" parent="@android:style/Theme.Dialog.Alert">
<item name="android:textViewStyle">@style/RightJustifyTextView</item>
<item name="android:windowTitleStyle">@style/RightJustifyDialogWindowTitle</item>
</style>
</resources>
Шаг 2. Создание RightJustifyAlertDialog.java
файла.Вот его содержание:
public class RightJustifyAlertDialog extends AlertDialog
{
public RightJustifyAlertDialog(Context ctx)
{
super(ctx, R.style.RightJustifyTheme);
}
}
Шаг 3. Использование RightJustifyAlertDialog
Диалог:
AlertDialog dialog = new RightJustifyAlertDialog(this);
dialog.setButton("button", new OnClickListener()
{
public void onClick(DialogInterface arg0, int arg1)
{
}
});
dialog.setTitle("Some Title");
dialog.setMessage("Some message");
dialog.show();
Шаг 4. Проверьте результаты:
![enter image description here](https://i.stack.imgur.com/AmcR1.png)