Android: integer dari sumber daya xml

110

Bagaimana saya harus mengubah sumber daya XML saya, atau file XML apa yang harus saya buat, untuk mengakses nilai integer dengan cara yang sama Anda mengakses nilai string R.string.some_string_resource?

Misalnya, dalam kode yang ingin saya katakan:

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

Apa itu mungkin?

Terry
sumber

Jawaban:

263

Ya itu mungkin, akan terlihat seperti ini:

  1. Buat file sumber daya xml di folder /res/values/bernama integers.xml.

    Anda bebas memberikan nama apa pun yang Anda inginkan, tetapi pilihlah yang jelas.

  2. Dalam file sumber daya itu, buat nilai integer Anda.

    File Anda kemudian terlihat seperti itu:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
    
  3. Referensi nilai integer dalam kode Java seperti ini:

    Ini sedikit berbeda dengan getString(), Anda harus mengambil sedikit jalan memutar.

    ProgressDialog progressBar = new ProgressDialog(getContext());
    int max = getContext().getResources().getInteger(R.integer.maximum);
    progressBar.setMax(max);
    
Terry
sumber
1
Itu nilai ganda, bukan bilangan bulat. Mungkin Anda menanyakannya dalam pertanyaan StackOverflow terpisah.
Terry
1
@Terry Jadi, apakah ini metode yang disukai untuk menggunakan Integer di android, saya biasanya mengodekannya di kode itu sendiri. Apa rekomendasi Anda?
capt.swag
2
@ capt.swag Biasanya Anda hardcode integer sebagai konstanta dalam kode di setiap kelas yang sesuai. Tetapi jika Anda perlu memiliki konstanta yang berbeda untuk tata letak yang berbeda (yaitu jumlah kolom untuk kisi) maka Anda akan menggunakan file XML untuk menyesuaikan konstanta tersebut ke berbagai lebar layar. Semoga membantu
rommex
1
dapatkah saya menggunakan nilai integer itu secara langsung dalam XML?
Arbaz. Dalam
1
@ capt.swag ya, itu metode yang disukai
Bato-Bair Tsyrenov
5

Anda harus menambahkan file integers.xml ke proyek Anda

masukkan deskripsi gambar di sini

lalu

masukkan deskripsi gambar di sini

dan di integers.xml tambahkan ini

<integer name="maximum">5</integer>
abolfazl bazghandi
sumber