2013-06-24 40 views
5

Tôi muốn thêm một số thư trong hộp thoại ListPreference, vì vậy tôi đã nghĩ đến việc sử dụng thuộc tính android: dialogMessage.Hiển thị android: dialogMessage trong hộp thoại ListPreference

Tuy nhiên, khi tôi đặt thuộc tính này, mục nhập danh sách (được đặt bằng android: mục và android: entryValues) không được hiển thị nữa trong hộp thoại (Dường như là lỗi đã biết khi tôi có thể đọc về nó ở nơi khác).

Vì vậy, có vẻ như tôi có thể cần tạo một ListPreference tùy chỉnh đặc biệt để hiển thị cả hộp thoại thoại và các mục nhập danh sách.

Tôi xem xét việc tạo một lớp tùy chỉnh MyListPreference sẽ được sửa đổi một chút cho mục đích này. Tôi sẽ ghi đè lên onCreateDialogView() để thực hiện các thay đổi. Tuy nhiên tôi là một chút không chắc chắn về những thay đổi sạch nhất để làm như tôi có thể nhìn thấy hai lựa chọn:

Alternative 1- Tạo một bố cục tùy chỉnh XML tôi sẽ sao chép layout xml mặc định cho hộp thoại ListPreference và thêm một TextView . Trong onCreateDialogView() tôi sẽ thổi phồng bố cục tùy chỉnh này.

Alternative 2- Sửa đổi View on the fly Trong onCreateDialogView() Tôi sẽ gọi super.onCreateDialogView() và tự động thêm một TextView để xem nó trả về.

Câu hỏi: Bạn khuyên bạn nên làm gì? Nếu phương án 1 là tốt nhất, tôi có thể tìm bố cục XML mặc định cho hộp thoại ListPreference để tôi có thể tùy chỉnh nó?

Cảm ơn sự giúp đỡ của bạn

Trả lời

1

Tôi sẽ thử thay thế # 2 trước. Tôi vừa mới phát triển một màn hình cài đặt lớn với khoảng 50 thiết lập và phát hiện ra, rằng việc sửa đổi View trong onCreateView() của một Preference khá đơn giản.

@Override 
protected View onCreateView(ViewGroup parent) { 
    View v = super.onCreateView(parent); 
    ((TextView) v).setText(this.text); 
    return v; 
} 

Tôi đặt cược nó giống với Hộp thoại của ListPreference.

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