Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Mobil - Android Programlama Ders 9: Res/values Klasörünü İnceliyoruz

Android Programlama Ders 9: Res/values Klasörünü İnceliyoruz

21 Nisan 2013 - 11:00
- Mobil, Teknoloji

Android programlama öğrenmeye devam ediyoruz. Bu derste res/values klasörlerin amacı nedir? Bu dosyalarda neler kaydedilir ve nasıl kullanılır? İşte bunları öğreneceğiz…

Res (resource) alt dosyalarda uygulamanın farklı kaynakların topladığı yerdir. Daha önce gördüğümüz layout-dosyalar da res/layout’ta bulunuyor. Şimdi res/values klasöre daha ayrıntılı bakalım. Bu klasörün amacı projenin kaynakların (farklı tiplerden) tutulmasıdır. Öncelikle String ve Color tiplerine bakalım.

Yeni proje oluşturalım:

  • Project name: P009_ResValues
  • Build Target: Android 4.2
  • Application name: ResValues
  • Package name: tr.androidApp .resvalues
  • Create Activity: MainActivity

 res/values/strings.xml dosyayı açalım

strings

Üç tane String tipi nesne görüyoruz:

Hello world – ara yüzarsayılan  olarak main.xml içinde TextView Text özelliği taşıyor. TextView bu nesnenin içeriğini yansıtıyor.

hello_world

app_name – Varsayılan olarak etkileşim (Activity) ve uygulama için başlık olarak kullanılıyor.

Bu özelliği Manifest klasöründe belirleniyor. Manifest klasörünü detaylı olarak gelecek derslerde inceleceğiz.

Bu nesnelere basıldığı zaman, sağ tarafta nesnelerin ne olduğuna yönelik bir açıklama vardır: İsim (Name) ve değer (Value)

attributes

Name – ID’dir. ID eşsiz (Benzersiz) olmalıdır. Bunun için R.java dosyasında bu String nesneye ulaşmak için konstant (Sabit) bir isim oluşuyor.

R_java

Şimdi daha önce gördüğümüz kaynakları kullanmaya çalışalım.

İlk önce main.xml’de aşağıdaki verdiğim kodları kullanarak yeni bir ekran oluşturalım:

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_height=”match_parent”
android:layout_width=”match_parent”
android:orientation=”vertical”>
<LinearLayout
android:layout_width=”match_parent”
android:id=”@+id/llTop”
android:orientation=”vertical”
android:layout_weight=”1″
android:layout_height=”match_parent”>
<TextView
android:text=”TextView”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_gravity=”center_horizontal”
android:id=”@+id/tvTop”
android:layout_marginTop=”30dp”>
</TextView>
<Button
android:text=”Button”
android:layout_height=”wrap_content”
android:layout_gravity=”center_horizontal”
android:id=”@+id/btnTop”
android:layout_width=”wrap_content”>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width=”match_parent”
android:id=”@+id/llBottom”
android:orientation=”vertical”
android:layout_weight=”1″
android:layout_height=”match_parent”>
<TextView
android:text=”TextView”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_gravity=”center_horizontal”
android:id=”@+id/tvBottom”
android:layout_marginTop=”30dp”>
</TextView>
<Button
android:text=”Button”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_gravity=”center_horizontal”
android:id=”@+id/btnBottom”>
</Button>
</LinearLayout>
</LinearLayout>

Ekran iki ayrı bölüme ayrılıyor. LinearLayout, Button ve TextView içeriyor. LinearLayout için fonun rengi  ve TextView, Button – metni değiştirelim. Bunu yapmak için kaynakları (Resources) kullanacağız. Ekranda yukarıdaki bölümde View nesneleri özellikleri (properties) kullanarak değiştireceğiz. Ve aşağıdaki kodu kullanarak.

Values klasöründe yeni bir dosya açalım isimi myres (My resource: Yani kaynaklarım) olsun.

yeni_xml_dosya

myres_xml

Resource Type yerine Values ve File için myres gireceğiz. Finish butona basıyoruz. Karşımıza aşağıdaki gibi pencere gelecektir.

myres_devami

Dosyayı oluştuktan sonra yeni bir nesne yüklemek için Add butona basıyoruz.

yeni_nesne_olusturma

Bastıktan sonra nesnenin tipini, ismini ve değerini seçiyoruz. Dört tane String ve iki tane Color nesnesi oluşturalım:

<?xml version=”1.0″ encoding=”utf-8″?>

<resources>

<string name=”tvTopText”>yukardaki tekst</string>

<string name=”btnTopText”>yukardaki buton</string>

<string name=”tvBottomText”>asagidaki tekst</string>

<string name=”btnBottomText”>asagidaki buton</string>

<color name=”llTopColor”>#336699</color>

<color name=”llBottomColor”>#339966</color>

</resources>

Elle girebilirsiniz veya yukarıdaki kodu myres.xml dosyaya  kopyalayabilirsiniz. Kaydedelim ve R.java dosyasını kontrol edelim.

R_java_kontrol

Tamam kaynakları oluşturduk, şimdi View nesnelerini kullanmak için ayarlamaları yapalım.

İlk önce yukarıdaki nesneler için ayarları yapalım. llTop’un özelliklerinde (Properties)  arka planında (Background) sağa tarafta düğmeye basıyoruz (Üç tane nokta). Color seçiminde llTopColor seçiyoruz.

L0011_L_lltop

tvTop için özellikler, Text içinde TvTopText seçeriz.

btnTop için özellikler, Text içinde btnTopText seçeriz.

Arka planın rengi, butonda ve TextView’de myres.xml dosyasında belirttiğimiz yazılarla değişti.

Aşağıdaki bölümü değiştirmek için kodu yazacağız. Bunun için ilk başta nesneleri buluruz ve sonra onlara değerleri atarız.

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

LinearLayout llBottom = (LinearLayout) findViewById(R.id.llBottom);
TextView tvBottom = (TextView) findViewById(R.id.tvBottom);
Button btnBottom = (Button) findViewById(R.id.btnBottom);

llBottom.setBackgroundResource(R.color.llBottomColor);
tvBottom.setText(R.string.tvBottomText);
btnBottom.setText(R.string.btnBottomText);

}
}

Dikkat ederseniz metin değerini değiştirmek için setText metodunu kullandık. Kodların çalışıp çalışmadığını görmek için emülatorü kullanacağız. Değişikleri görmek için GraphicalLayout uygun değildir, çünkü bu şekilde, onCreate metodu sadece uygulamayı çalıştırdığı zaman çalışır.

emulator

Ders Sonu Notları:

Bu derste String ve Color bir myres.xml dosyada iki tane kaynak oluşturduk. Ama daha kullanışlı bu kaynakları ayrı dosyalarda tutmaktadır. Gelecek derslerde biz bu yöntemi kullanacağız (Mesela strings.xml, colors.xml).

Res/values klasöründe kaynakların isimleri farklı olmalıdır. Bu demek farklı dosyalarda kaynakların ismi aynı olmayacaktır.

Gelecek derste uygulamanın bildirimleri (Logs) ve çıkan mesajları detaylı ilgileneceğiz.

Etiketler: AndroidAndroid programlamaapp_namebackgroundColorderslogsManifestoptimizasyonR.javares/valuessetTextString
Paylaş2PaylaşTweetYollaPaylaş
Victor Cuiumju

Victor Cuiumju

Yorum Yap Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

RSS Technopat Sosyal

  • 100Mbit Wi-Fi 5 destekleyen evde TP-Link Archer VX1800v kullanılır mı?
  • 40.000 TL'ye kadar sistem önerisi
  • 10.000 TL'ye Gigabit router tavsiyesi
  • Detroit: Become Human 399 TL!
  • 650.000 TL'ye araba önerisi
  • TYT fen nasıl çalışılır?
  • Zula ve Point Blank hala oynanır mı?
  • Creative Sound BlasterX G6 2400TL
  • iPhone 17 serisi farklı ekran panelleri kullanıyor
  • Mortal Kombat 11 35 TL

Technopat Video

Şu an oynayan

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Akıllı Saat
Huawei Watch GT 6 Pro

Apple’ı 20’ye katlayan saat! Huawei Watch GT 6 Pro incelemesi

Akıllı Saat
Technopat ofisi Eylül ayında neler aldı? 

Technopat ofisi Eylül ayında neler aldı? 

Giyilebilir Teknoloji

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
{title} {title} {title}
Onayı Yönet
En iyi deneyimleri sunmak için, cihaz bilgilerini saklamak ve/veya bunlara erişmek amacıyla çerezler gibi teknolojiler kullanıyoruz. Bu teknolojilere izin vermek, bu sitedeki tarama davranışı veya benzersiz kimlikler gibi verileri işlememize izin verecektir. Onay vermemek veya onayı geri çekmek, belirli özellikleri ve işlevleri olumsuz etkileyebilir.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, abone veya kullanıcı tarafından açıkça talep edilen belirli bir hizmetin kullanılmasını sağlamak veya bir elektronik iletişim ağı üzerinden bir iletişimin iletimini gerçekleştirmek amacıyla meşru bir amaç için kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından talep edilmeyen tercihlerin saklanmasının meşru amacı için gereklidir.
İstatistik
Sadece istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Sadece anonim istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Mahkeme celbi, İnternet Hizmet Sağlayıcınızın gönüllü uyumu veya üçüncü bir taraftan ek kayıtlar olmadan, yalnızca bu amaçla depolanan veya alınan bilgiler genellikle kimliğinizi belirlemek için kullanılamaz.
Pazarlama
Teknik depolama veya erişim, reklam göndermek için kullanıcı profilleri oluşturmak veya benzer pazarlama amaçları için kullanıcıyı bir web sitesinde veya birkaç web sitesinde izlemek için gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri görüntüle
{title} {title} {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal