2010-12-27 47 views
5

Tôi có hai câu hỏiAndroid: Định dạng phông chữ trong hộp thoại cảnh báo

1) Có ai biết, cách áp dụng kiểu hoặc định dạng để cảnh báo hộp thoại hay không. Tôi hiện đang sử dụng Builder builder = new AlertDialog.Builder(this); Và sử dụng phương thức setMessage() để đặt nội dung.

2) Tôi cũng muốn biết cách thay đổi màu của các liên kết được tạo bởi linkify. Tôi không muốn màu xanh mặc định.

Trả lời

12

Q1. Bạn cần phải thổi phồng hoặc tùy chỉnh và tạo ra một phong cách và áp dụng đối với AlertDialog

Heres cách bạn thổi phồng một cách bố trí và áp dụng nó vào 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); 

xác định tất cả các định dạng và phong cách cần thiết trong cách bố trí mà bạn chỉ định.

Bạn có thể truy cập vào TextView cụ thể được định nghĩa trong bố trí sử dụng thổi phồng Xem ví dụ:

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" có thể được sử dụng để chỉ định màu của liên kết.

EDIT:

Mẫu bố trí lưu lại dưới dạng 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> 

Trong onCreate của bạn() hoặc nơi hoặc bất cứ khi nào bạn muốn gọi 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); 

thay thế this bằng đối tượng bối cảnh nếu bạn đang gọi từ một số phương thức khác.

+0

Tôi có một số nghi ngờ. Bố cục format_dialog sẽ như thế nào? Sau đó, tôi nên thêm nội dung của mình như thế nào? Và tôi nên chỉ định 'android: textColorLink' ở đâu? – Vivek

+0

Đã thêm mẫu. hy vọng điều này sẽ cho bạn ý tưởng rõ ràng. – Shardul

+0

bạn có thể cho tôi biết, làm thế nào để sử dụng kiểu chữ trong AlertDialog –

3

bạn có thể sử dụng đoạn mã sau để thay đổi kiểu chữ và màu chữ bằng cách chiết xuất TextView từ mặc định alertDialog:

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

Hi Anand, tôi đã thử như bạn nói nhưng tôi không thể tìm ra rằng tôi đang làm sai. Tôi đã nhận NullPointerException tại tập Gravity .... Mã của tôi là giống như dưới đây: AlertDialog.Builder builder = new AlertDialog.Builder (context); builder.setIcon (0); builder.setTitle ("Tiêu đề của tôi"); 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

Các vấn đề liên quan