2010-12-27 3 views
5

У меня есть два вопроса:Android: Формат шрифта в диалоговом окне оповещений

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

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

ответ

12

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

Heres как вы надуть макет и применить его к 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); 

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

Вы можете получить доступ к конкретной TextView, определенный в макете с использованием завышены 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:

Пример макета сохраняется как Рез/макет/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 на объект контекста, если вы вызываете какой-либо другой метод.

+0

У меня есть некоторые сомнения. Каким будет формат formatted_dialog? Тогда как мне добавить свой контент? И где я должен указывать 'android: textColorLink'? – Vivek

+0

Образец добавлен. надеюсь, это даст вам четкую идею. – Shardul

+0

Можете ли вы рассказать мне, как использовать шрифт в AlertDialog –

3

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

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

Привет, Ананд, я пробовал, как сказал вам, но я не могу понять, где я делаю неправильно. Я получил NullPointerException в Gravity set .... Мой код выглядит так: AlertDialog.Builder builder = new AlertDialog.Builder (контекст); builder.setIcon (0); builder.setTitle («My Title»); builder.setMessage (msg); builder.setNeutralButton («Ok», null); AlertDialog alertDialog = builder.create(); alertDialog.show(); ((TextView) alertDialog.findViewById (android.R.id.title)). SetGravity (Gravity.CENTER); ((TextView) alertDialog.findViewById (android.R.id.message)). SetGravity (Gravity.CENTER); – Kalpesh