Android: форматировать шрифт в диалоге оповещения - PullRequest
5 голосов
/ 27 декабря 2010

У меня два вопроса

1) Кто-нибудь знает, как применять стили или форматирование для диалогового окна оповещения.В настоящее время я использую Builder builder = new AlertDialog.Builder(this); И использую setMessage() метод для установки содержимого.

2) Также хотелось бы узнать, как изменить цвет ссылок, созданных с помощью linkify.Я не хочу синий цвет по умолчанию.

Ответы [ 2 ]

12 голосов
/ 27 декабря 2010

Q1. Вы должны надуть или настроить и создать стиль и применить к AlertDialog

Вот как вы раздуваете макет и применяете его к AlertDialog

LayoutInflater li = LayoutInflater.from(ctx);
View view = li.inflate(R.layout.formatted_dialog, null);

AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
builder.setTitle("Formatted");
builder.setView(view);

определяет все форматирование и стили, необходимые в указанном макете.

Вы можете получить доступ к определенному текстовому представлению, определенному в макете, используя раздутый вид, т.е.

LayoutInflater li = LayoutInflater.from(ctx);
View view = li.inflate(R.layout.formatted_dialog, null);
TextView label=(TextView)view.findViewById(R.id.i_am_from_formatted_layout_lable);

Q2. android:textColorLink="#FF00FF" можно использовать для указания цвета ссылки.

EDIT:

Пример макета сохранен как res / layout / link.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

  <TextView
   android:id="@+id/text"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="http://www.google.com"
   android:autoLink="web"
   android:textColorLink="#FF00FF"
  />

</LinearLayout>

В вашем onCreate () или где или когда вы хотите вызвать AlertDialog

LayoutInflater li = LayoutInflater.from(this);
View view = li.inflate(R.layout.link, null);

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Formatted");
builder.setView(view).create().show();
TextView text=(TextView) findViewById(R.id.text);

замените this на объект контекста, если вы вызываете какой-либо другой метод.

3 голосов
/ 19 декабря 2011

Вы можете использовать следующий код для изменения шрифта и цвета текста, извлекая TextView из стандартного alertDialog:

TextView txtAlertMsg = (TextView)alert.findViewById(android.R.id.message);
txtAlertMsg.setGravity(Gravity.CENTER);
...