Android: xml kaynağından tam sayı


110

Dize değerlerine eriştiğiniz şekilde tamsayı değerlerine erişmek için XML kaynaklarımı nasıl değiştirmeliyim veya hangi XML dosyasını oluşturmalıyım R.string.some_string_resource?

Örneğin, kodda şunu söylemek istiyorum:

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

Mümkün mü?

Yanıtlar:


263

Evet mümkün, şöyle görünecektir:

  1. İntegers.xml /res/values/adlı klasörde bir xml kaynakları dosyası oluşturun .

    İstediğiniz adı vermekte özgürsünüz, ancak apaçık olanı seçin.

  2. Bu kaynaklar dosyasında tamsayı değerlerinizi oluşturun.

    Dosyanız daha sonra şuna benzer:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
  3. Java kodundaki tamsayı değerini şu şekilde referans alın:

    Bu biraz farklı, getString()biraz dolanmak zorundasın.

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

1
Bu çift değer, tam sayı değil. Belki bunu ayrı bir StackOverflow sorusunda soruyorsunuz.
Terry

1
@Terry Yani bu, android'de Tamsayıları kullanmak için tercih edilen yöntemdir, genellikle kodun kendisine kodluyorum. Tavsiyen nedir?
capt.swag

2
@ capt.swag Genellikle tamsayıları, uygun şekilde her sınıftaki kodda sabitler olarak kodlarsınız. Ancak, farklı düzenler için farklı sabitlere ihtiyacınız varsa (yani, bir ızgara için sütun sayısı), o sabiti ekranın çeşitli genişliklerine uyarlamak için XML dosyalarını kullanacaksınız. Umarım yardımcı olur
rommex

1
bu tamsayı değerini doğrudan XML'de kullanabilir miyim?
Arbaz.

1
@ capt.swag evet, bu tercih edilen yöntem
Bato-Bair Tsyrenov

5

İntegers.xml dosyasını projenize eklemelisiniz

görüntü açıklamasını buraya girin

ve sonra

görüntü açıklamasını buraya girin

ve integers.xml içine bunu ekleyin

<integer name="maximum">5</integer>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.