Android: số nguyên từ tài nguyên xml


110

Làm cách nào để tôi phải sửa đổi các tài nguyên XML của mình hoặc tôi phải tạo tệp XML nào để truy cập các giá trị số nguyên giống như cách bạn truy cập các giá trị chuỗi R.string.some_string_resource?

Ví dụ, trong đoạn mã tôi muốn nói:

ProgressDialog progressBar = new ProgressDialog(getContext());
progressBar.setMax(getInteger(R.integer.maximum));

Nó có khả thi không?

Câu trả lời:


263

Có, nó có thể, nó sẽ trông như thế này:

  1. Tạo tệp tài nguyên xml trong thư mục /res/values/ tên là integers.xml.

    Bạn có thể tự do đặt cho nó bất kỳ tên nào bạn muốn, nhưng hãy chọn một cái tên rõ ràng.

  2. Trong tệp tài nguyên đó, hãy tạo các giá trị số nguyên của bạn.

    Sau đó tệp của bạn trông giống như sau:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
  3. Tham chiếu giá trị số nguyên trong mã Java như sau:

    Nó hơi khác so với getString(), bạn phải đi đường vòng một chút.

    ProgressDialog progressBar = new ProgressDialog(getContext());
    int max = getContext().getResources().getInteger(R.integer.maximum);
    progressBar.setMax(max);

1
Đó là một giá trị kép, không phải một số nguyên. Có thể bạn hỏi điều đó trong một câu hỏi StackOverflow riêng biệt.
Terry

1
@Terry Vì vậy, đây có phải là phương pháp ưa thích để sử dụng Số nguyên trong android không, tôi thường mã hóa nó trong chính mã đó. Lời đề nghị của bạn là gì?
capt.swag

2
@ capt.swag Thông thường bạn mã hóa các số nguyên dưới dạng hằng số trong mã ở mỗi lớp sao cho phù hợp. Nhưng nếu bạn cần có các hằng số khác nhau cho các bố cục khác nhau (tức là số cột cho một lưới) thì bạn sẽ sử dụng các tệp XML để điều chỉnh hằng số đó với các độ rộng khác nhau của màn hình. Hy vọng rằng sẽ giúp
rommex

1
tôi có thể sử dụng trực tiếp giá trị số nguyên đó trong XML không?
Arbaz.in

1
@ capt.swag có, đó là phương pháp ưa thích
Bato-Bair Tsyrenov

5

Bạn phải thêm tệp integers.xml vào dự án của mình

nhập mô tả hình ảnh ở đây

và sau đó

nhập mô tả hình ảnh ở đây

và trong integer.xml, hãy thêm vào

<integer name="maximum">5</integer>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.