11

Tôi đang triển khai <declare-styleable> của riêng mình cho Chế độ xem tùy chỉnh (theo các hướng dẫn here). Tôi muốn có thể chỉ định một mảng các số nguyên là một trong các thuộc tính XML có thể có. Làm cách nào để:Cách xác định một mảng các số nguyên theo kiểu khai báo?

  1. Chỉ định mảng nguyên là thuộc tính XML trong attrs.xml?
  2. Lấy từ số TypedArray sau khi gọi obtainStyledAttributes() trong Chế độ xem tùy chỉnh của tôi?

Trả lời

23
  1. Bạn có thể khai báo nó làm tài liệu tham khảo.

    <declare-styleable name="MyView"> 
        <attr name="array" format="reference"/> 
    </declare-styleable> 
    
  2. Dường như TypeArray có không getIntArray phương pháp, do đó bạn có để có được nó trực tiếp từ các nguồn tài nguyên.

    final TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView); 
    final int id = array.getResourceId(R.styleable.MyView_array, 0); 
    
    if (id != 0) { 
        final int[] values = getResources().getIntArray(id); 
    } 
    
    array.recycle() 
    
+8

Đừng quên gọi array.recycle() sau khi sử dụng một TypedArray. Đó sẽ là sau dòng 2. – jpmcosta

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