1.1: Buat Aplikasi Android Anda yang Pertama

 

Bab ini menjelaskan cara mengembangkan aplikasi menggunakan Android Studio Integrated Development Environment (IDE).

Proses development

Proyek aplikasi Android dimulai dengan ide dan definisi persyaratan yang diperlukan untuk mewujudkan ide tersebut. Saat proyek berjalan, maka akan melalui desain, development, dan pengujian

.Proses Development Android

Diagram di atas adalah gambar proses development tingkat tinggi, dengan langkah-langkah berikut:

  • Mendefinisikan ide dan persyaratannya: Sebagian besar aplikasi dimulai dengan ide tentang hal yang harus dilakukan, yang didukung pasar dan penelitian pengguna. Selama tahap ini, persyaratan aplikasi didefinisikan.
  • Membuat prototipe antarmuka pengguna: Gunakan gambar, rekaan, dan prototipe untuk menampilkan tampilan antarmuka pengguna nantinya, dan cara kerjanya.
  • Mengembangkan dan menguji aplikasi: Aplikasi terdiri dari satu atau beberapa aktivitas. Untuk setiap aktivitas, Anda bisa menggunakan Android Studio untuk melakukan hal berikut, tidak dalam urutan tertentu:
    • Buat layout: Tempatkan elemen UI pada layar di layout, dan tetapkan sumber daya string serta item menu, menggunakan Extensible Markup Language (XML).
    • Tulis kode Java: Buat referensi kode sumber untuk komponen dan pengujian, serta gunakan alat pengujian dan debug.
    • Daftarkan aktivitas: Deklarasikan aktivitas dalam file manifes.
    • Definisikan versi: Gunakan konfigurasi pembangunan default atau buat pembangunan khusus untuk versi aplikasi yang berbeda.
  • Mempublikasikan aplikasi: Rakit APK (file paket) final dan distribusikan melalui saluran seperti Google Play.

Menggunakan Android Studio

Android Studio menyediakan alat untuk pengujian, dan mempublikasikan tahap proses development, serta lingkungan development terpadu untuk membuat aplikasi bagi semua perangkat Android. Lingkungan development menyertakan kode template dengan kode contoh untuk fitur aplikasi umum, alat pengujian dan kerangka kerja yang banyak, dan sistem pembangunan yang fleksibel.

Memulai proyek Android Studio

Setelah berhasil memasang Android Studio IDE, klik dua kali ikon aplikasi Android Studio untuk memulainya. Pilih Start a new Android Studio project di jendela Welcome, dan beri nama proyek dengan nama yang sama yang ingin Anda gunakan untuk aplikasi.

Saat memilih Domain Perusahaan unik, ingat bahwa aplikasi yang dipublikasikan ke Google Play harus memiliki nama paket unik. Karena domain bersifat unik, yang mengawali nama aplikasi dengan nama Anda, atau nama domain perusahaan, sebaiknya sediakan nama paket unik yang memadai. Jika tidak berencana untuk mempublikasikan aplikasi, Anda bisa menerima domain contoh default. Ketahuilah bahwa mengubah nama paket di lain waktu memerlukan kerja tambahan.

Memilih perangkat target dan SDK minimum

Saat memilih Target Android Devices, Phone and Tablet dipilih secara default, seperti yang ditampilkan dalam gambar di bawah ini. Pilihan yang ditampilkan dalam gambar untuk Minimum SDK — API 15: Android 4.0.3 (IceCreamSandwich) — membuat aplikasi Anda kompatibel dengan 97% perangkat Android yang aktif di Google Play Store.

Target Proyek Android Studio

Perangkat berbeda menjalankan versi sistem Android yang berbeda, seperti Android 4.0.3 atau Android 4.4. Setiap versi yang berurutan umumnya menambahkan API baru yang tidak tersedia di versi sebelumnya. Untuk menunjukkan rangkaian API yang tersedia, setiap versi menetapkan API level. Misalnya, Android 1.0 adalah API level 1 dan Android 4.0.3 adalah API level 15.

Minimum SDK mendeklarasikan versi Android minimum untuk aplikasi Anda. Setiap versi Android yang berurutan menyediakan kompatibilitas untuk aplikasi yang dibangun menggunakan API dari versi sebelumnya, sehingga aplikasi Anda akan selalu kompatibel dengan versi Android mendatang sambil menggunakan Android API yang didokumentasikan.

Memilih template

Android Studio mengumpulkan terlebih dulu proyek Anda dengan kode minimum untuk aktivitas dan layout layar berdasarkan template. Tersedia berbagai macam template, mulai dari template kosong virtual (Add No Activity) hingga beragam tipe aktivitas.

Anda bisa menyesuaikan aktivitas setelah memilih template. Misalnya, template Empty Activity menyediakan satu aktivitas yang disertai satu sumber daya layout untuk layar. Anda bisa memilih untuk menerima nama yang biasa digunakan untuk aktivitas (seperti MainActivity) atau mengubah nama di layar Customize Activity . Selain itu, jika Anda menggunakan template Empty Activity, pastikan memeriksa yang berikut ini jika belum diperiksa:

  • Generate Layout File: Biarkan ini dicentang untuk membuat sumber daya layout yang terhubung dengan aktivitas ini, yang biasanya diberi nama activity_main.xml. Layout mendefinisikan antarmuka pengguna untuk aktivitas.
  • Backwards Compatibility (AppCompat)Biarkan ini dicentang untuk menyertakan pustaka AppCompat sehingga aplikasi kompatibel dengan Android versi sebelumnya bahkan jika menggunakan fitur yang hanya ditemukan di versi yang lebih baru.

Menyesuaikan Aktivitas

Android Studio membuat folder untuk proyek yang baru saja dibuat di folder AndroidStudioProjects pada komputer Anda.

Panel jendela Android Studio

Jendela utama Android Studio terdiri dari sejumlah area logis, atau panel, seperti yang ditampilkan dalam gambar di bawah ini.Proyek Android Studio: Tampilan Android

Dalam gambar di atas:

  1. Bilah Alat. Bilah alat menjalankan beragam tindakan, termasuk menjalankan aplikasi Android dan meluncurkan alat Android.
  2. Bilah Navigasi. Bilah navigasi memungkinkan navigasi melalui proyek dan membuka file untuk pengeditan. Bilah navigasi menyediakan tampilan struktur proyek yang lebih ringkas.
  3. Panel Editor. Panel ini menampilkan materi file yang dipilih dalam proyek. Misalnya, setelah memilih layout (seperti yang ditampilkan dalam gambar), panel ini menampilkan editor layout dengan alat untuk mengedit layout. Setelah memilih file kode Java, panel ini menampilkan kode dengan alat untuk mengedit kode.
  4. Bilah StatusBilah status menampilkan status proyek dan Android Studio itu sendiri, serta peringatan atau pesan apa pun. Anda bisa mengamati kemajuan pembangunan di bilah status.
  5. Panel Project. Panel proyek menampilkan file proyek dan hierarki proyek.
  6. Panel Monitor. Panel monitor menawarkan akses ke daftar TODO untuk mengelola tugas, Android Monitor untuk memantau eksekusi aplikasi (ditampilkan dalam gambar), logcat untuk menampilkan pesan log, dan aplikasi Terminal untuk melakukan aktivitas Terminal.

Tip: Anda bisa mengatur jendela utama untuk memberi Anda lebih banyak ruang layar dengan menyembunyikan atau memindahkan panel. Anda juga bisa menggunakan pintasan keyboard untuk mengakses lebih banyak fitur. Lihat Pintasan Keyboard untuk daftar lengkap.

Menjelajahi proyek

Setiap proyek di Android Studio berisi file AndroidManifest.xml, file kode sumber komponen, dan file sumber daya terkait. Secara default, Android Studio mengatur file proyek Anda berdasarkan jenis file, dan menampilkannya dalam proyek: Tampilan Android di panel alat (bantu) kiri, seperti yang ditampilkan di bawah ini. Tampilan menyediakan akses cepat ke file kunci proyek Anda.

Untuk beralih kembali ke tampilan ini dari tampilan lainnya, klik tab Project vertikal di kolom paling kiri panel Project, dan pilih Android dari menu munculan di bagian atas panel Project, seperti yang ditampilkan dalam gambar di bawah ini.Proyek Android Studio: Tampilan Android

Dalam gambar di atas:

  1. Tab Project . Klik untuk menampilkan tampilan proyek.
  2. Pilihan Android di menu tarik-turun proyek.
  3. File AndroidManifest.xml. Digunakan untuk menetapkan informasi tentang aplikasi bagi lingkungan waktu proses Android. Template yang Anda pilih membuat file ini.
  4. Folder java. Folder ini menyertakan aktivitas, pengujian, dan komponen lain di kode sumber Java. Setiap aktivitas, layanan, dan komponen lain didefinisikan sebagai kelas Java, biasanya dalam file miliknya. Nama aktivitas pertama (layar) yang pengguna lihat, yang juga melakukan inisialisasi sumber daya seluruh aplikasi, biasanya adalah MainActivity.
  5. Folder res. Folder ini menyimpan sumber daya, seperti layout XML, string UI, dan gambar. Aktivitas biasanya dikaitkan dengan file sumber daya XML yang menetapkan layout tampilannya. File ini biasanya diberi nama setelah aktivitas atau fungsinya.
  6. File **build.gradle (Module: App
  7. )*. File ini menetapkan konfigurasi pembangunan modul. Template yang Anda pilih membuat file ini, yang mendefinisikan konfigurasi pembangunan, termasuk atribut minSdkVersion yang mendeklarasikan versi minimum untuk aplikasi, dan atribut targetSdkVersion yang mendeklarasikan versi tertinggi (terbaru) untuk aplikasi yang dioptimalkan. File ini juga menyertakan daftar dependensi*, yaitu pustaka yang diperlukan oleh kode — seperti pustaka AppCompat untuk mendukung beragam versi Android.

1

Menampilkan Manifes Android

Sebelum sistem Android bisa memulai komponen aplikasi, sistem harus mengetahui bahwa komponen ada dengan membaca file AndroidManifest.xml aplikasi. Aplikasi harus mendeklarasikan semua komponennya dalam file ini, yang harus berada pada akar direktori proyek aplikasi.

Untuk menampilkan file ini, luaskan folder manifes di Project: Tampilan Android, dan klik dua kali file (AndroidManifest.xml). Isinya muncul di panel pengeditan seperti yang ditampilkan dalam gambar di bawah ini.Manifes Android

Namespace dan tag aplikasi Android

Manifes Android dikodekan di XML dan selalu menggunakan namespace Android:

xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.android.helloworld">

Ekspresi package menampilkan nama paket unik aplikasi baru. Jangan mengubah ini setelah aplikasi dipublikasikan.

 <application
   ...
 </application>

Tag <application , dengan tag </application> penutupnya, mendefinisikan setelan manifes untuk keseluruhan aplikasi.

Cadangan otomatis

Atribut android:allowBackup memungkinkan pencadangan data aplikasi otomatis:

   ...
   android:allowBackup="true"
   ...

Menyetel atribut android:allowBackup ke true memungkinkan aplikasi dicadangkan secara otomatis dan dipulihkan jika perlu. Pengguna menggunakan waktu dan upaya untuk mengonfigurasi aplikasi. Beralih ke perangkat baru bisa membatalkan seluruh konfigurasi yang dibuat dengan susah payah. Sistem melakukan cadangan otomatis ini untuk hampir seluruh data aplikasi secara default, dan melakukannya tanpa mengharuskan developer menulis kode aplikasi tambahan lainnya.

Untuk aplikasi dengan versi SDK target berupa Android 6.0 (API level 23) dan yang lebih tinggi, perangkat yang menjalankan Android 6.0 dan yang lebih tinggi secara otomatis membuat cadangan data aplikasi ke awan karena atribut android:allowBackup default ke true jika dihilangkan. Untuk aplikasi < API level 22, Anda harus secara eksplisit menambahkan atribut android:allowBackup dan menyetelnya ke true.

Tip: Untuk mengetahui selengkapnya tentang pencadangan otomatis untuk aplikasi, lihat Mengonfigurasi Cadangan Otomatis untuk Aplikasi.

Ikon aplikasi

Metode android:icon menyetel ikon untuk aplikasi:

   ...
   android:allowBackup="true"
   android:icon="@mipmap/ic_launcher"
   ...

Atribut android:icon menetapkan ikon di folder mipmap (di dalam folder res di Project: tampilan Android) untuk aplikasi. Ikon muncul di Peluncur untuk meluncurkan aplikasi. Ikon juga digunakan sebagai ikon default untuk komponen aplikasi.

Sumber daya string dan label aplikasi

Seperti yang bisa Anda lihat di gambar sebelumnya, atribut android:label menampilkan string "Hello World" yang disorot. Jika Anda mengeklik string ini, maka string berubah untuk menampilkan sumber daya string @string/app_name:

   ...
   android:label="@string/app_name"
   ...

Tip: Ctrl – klik atau klik-kanan app_name di panel edit untuk melihat menu konteks. Pilih Go To > Declaration untuk melihat lokasi sumber daya string dideklarasikan: dalam file strings.xml. Bila Anda memilih Go To > Declaration atau membuka file dengan mengeklik dua kali strings.xml di Project: Tampilan Android (di dalam folder values), isinya muncul di panel pengeditan.

Setelah membuka file strings.xml, Anda bisa melihat bahwa nama string app_name disetel ke Hello World. Anda bisa mengubah nama aplikasi dengan mengubah string Hello World ke hal lain. Sumber daya string dijelaskan dalam pelajaran terpisah.

Tema aplikasi

Atribut android:theme menyetel tema aplikasi, yang mendefinisikan penampilan elemen antarmuka pengguna seperti teks:

   ...
   android:theme="@style/AppTheme">
   ...

Atribut theme disetel ke tema standar AppTheme. Tema dijelaskan dalam pelajaran terpisah.

Mendeklarasikan versi Android

Perangkat yang berbeda mungkin menjalankan versi sistem Android yang berbeda, seperti Android 4.0 atau Android 4.4. Setiap versi yang berurutan bisa menambahkan API baru yang tidak tersedia di versi sebelumnya. Untuk menunjukkan rangkaian API yang tersedia, setiap versi menetapkan API level. Misalnya, Android 1.0 adalah API level 1 dan Android 4.4 adalah API level 19.

API level memungkinkan developer untuk mendeklarasikan versi minimum dengan aplikasi yang kompatibel, menggunakan tag manifes <uses-sdk> dan atribut minSdkVersion . Misalnya, Calendar Provider API telah ditambahkan di Android 4.0 (API level 14). Jika aplikasi Anda tidak berfungsi tanpa API tersebut, deklarasikan API level 14 sebagai versi yang didukung minimum aplikasi seperti ini:

<manifest ... >
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
    ...
</manifest>

Atribut minSdkVersion mendeklarasikan versi minimum untuk aplikasi, dan atribut targetSdkVersionmendeklarasikan versi tertinggi (terbaru) yang telah dioptimalkan dalam aplikasi. Setiap versi Android yang berurutan menyediakan kompatibilitas untuk aplikasi yang dibangun menggunakan API dari versi sebelumnya, sehingga aplikasi akan selalu kompatibel dengan versi Android mendatang sambil menggunakan Android API yang didokumentasikan.

Atribut targetSdkVersiontidak mencegah aplikasi dipasang pada versi Android yang lebih tinggi (yang lebih baru) dibandingkan nilai yang ditetapkan, namun hal ini penting karena menunjukkan pada sistem apakah aplikasi harus mewarisi perubahan perilaku di versi yang baru. Jika Anda tidak memperbarui targetSdkVersion ke versi terbaru, sistem akan menganggap bahwa aplikasi memerlukan perilaku kompatibilitas mundur saat dijalankan pada versi terbaru. Misalnya, di antara perubahan perilaku di Android 4.4, alarm yang dibuat dengan AlarmManager API saat ini tidak tepat secara default sehingga sistem bisa mengumpulkan alarm aplikasi dan mempertahankan kekuatan sistem, namun sistem akan menahan perilaku API sebelumnya untuk aplikasi jika API level target Anda lebih rendah daripada "19".

Menampilkan dan mengedit kode Java

Komponen ditulis di Java dan dicantumkan dalam folder modul di folder java dalam Project: Tampilan Android. Setiap nama modul diawali dengan nama domain (seperti com.example.android) dan menyertakan nama aplikasi.

Contoh berikut menampilkan komponen aktivitas:

  1. Klik folder modul untuk meluaskan dan menampilkan file MainActivity untuk aktivitas yang ditulis di Java (kelas MainActivity ).
  2. Klik dua kali MainActivity untuk melihat file sumber di panel pengeditan, seperti yang ditampilkan dalam gambar di bawah ini.Komponen MainActivity

Bagian paling atas file MainActivity.java adalah pernyataan package yang mendefinisikan paket aplikasi. Ini diikuti dengan blok import yang diringkas dalam gambar di atas, dengan “...“. Klik titik untuk meluaskan blok guna menampilkannya. Pernyataan import akan mengimpor pustaka yang diperlukan untuk aplikasi, seperti berikut ini, yang mengimpor pustaka AppCompatActivity:

import android.support.v7.app.AppCompatActivity;

Setiap aktivitas dalam aplikasi diimplementasikan sebagai kelas Java. Deklarasi kelas berikut memperluas kelas AppCompatActivity untuk mengimplementasikan fitur dengan cara yang kompatibel-mundur dengan Android versi sebelumnya:

MainActivity kelas publik memperluas AppCompatActivity {
    ...
}

Seperti yang Anda pelajari terdahulu, sebelum sistem Android bisa memulai komponen aplikasi seperti aktivitas, sistem harus mengetahui bahwa aktivitas ada dengan membaca file AndroidManifest.xml aplikasi. Oleh karena itu, setiap aktivitas harus dicantumkan di file AndroidManifest.xml.

Menampilkan dan mengedit layout

Sumber daya layout ditulis dalam XML dan dicantumkan dalam folder layout di folder res dalam Project: Tampilan Android. Klik res > layout, kemudian klik dua kali activity_main.xml untuk melihat file layout di panel pengeditan.

Android Studio menampilkan tampilan Desain layout, seperti yang ditampilkan dalam gambar di bawah ini. Tampilan ini menyediakan panel Palette elemen antarmuka pengguna, dan petak yang menampilkan layout layar.Layout (Tampilan Desain)

Memahami proses pembangunan

Android Application Package (APK) adalah format file paket untuk mendistribusikan dan memasang aplikasi seluler Android. Proses pembangunan melibatkan alat dan proses yang secara otomatis mengonversi setiap proyek menjadi APK.

Android Studio menggunakan Gradle sebagai dasar sistem pembangunan, dengan kemampuan khusus Android lebih banyak yang disediakan oleh Android Plugin for Gradle. Sistem pembangunan ini berjalan sebagai alat (bantu) terintegrasi dari menu Android Studio.

Memahami file build.gradle

Bila Anda membuat proyek, Android Studio secara otomatis menghasilkan file pembangunan penting di folder Gradle Scripts dalam Project: Tampilan Android. File pembangunan Android Studio diberi nama build.gradle seperti yang ditampilkan di bawah ini:Skrip Gradle

Setiap proyek memiliki hal berikut:

build.gradle (Project: apptitle)

Ini adalah file pembangunan tingkat atas untuk keseluruhan proyek, berada di akar direktori proyek, yang mendefinisikan konfigurasi pembangunan yang berlaku untuk semua modul di proyek Anda. File ini, yang dihasilkan oleh Android Studio, tidak boleh diedit untuk menyertakan dependensi aplikasi.

build.gradle (Module: app)

Android Studio membuat file build.gradle (Module: app) terpisah untuk setiap modul. Anda bisa mengedit setelan pembangunan guna menyediakan opsi pemaketan khusus untuk setiap modul, seperti tipe pembangunan tambahan dan ragam produk, dan untuk menggantikan setelan di file manifes atau build.gradle tingkat atas. File ini paling sering adalah file untuk mengedit ketika mengubah konfigurasi tingkat aplikasi, seperti mendeklarasikan dependensi di bagian dependencies . Yang berikut ini menampilkan isi file build.gradle (Module: app) proyek:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1"
    defaultConfig {
        applicationId "com.example.android.helloworld2"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        rilis {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
}

File build.gradle menggunakan sintaks Gradle. Gradle adalah Domain Specific Language (DSL) untuk menjelaskan dan memanipulasi logika pembangunan dengan menggunakan Groovy, yang merupakan bahasa dinamis untuk Java Virtual Machine (JVM). Anda tidak perlu mempelajari Groovy untuk melakukan perubahan, karena Android Plugin for Gradle memperkenalkan sebagian besar elemen DSL yang Anda perlukan.

Tip: Untuk mengetahui selengkapnya tentang DSL plugin Android, baca Dokumentasi referensi DSL.

Blok Plugin dan Android.

Dalam file build.gradle (Module: app) di atas, pernyataan pertama menerapkan tugas pembangunan plug-in Gradle khusus Android:

apply plugin: 'com.android.application'

android {
   ...
}

Blok android { } menetapkan hal berikut ini untuk versi:

  • Versi SDK target untuk mengompilasi kode:
    compileSdkVersion 24
    
  • Versi alat pembangunan untuk digunakan membangun aplikasi:
    buildToolsVersion "24.0.1"
    

Blok defaultConfig

Setelan inti dan entri untuk aplikasi ditetapkan di blok defaultConfig { } dalam android { } block:

   ...
   defaultConfig {
      applicationId "com.example.hello.helloworld"
      minSdkVersion 15
      targetSdkVersion 23
      versionCode 1
      versionName "1.0"
            testInstrumentationRunner
               "android.support.test.runner.AndroidJUnitRunner"
   }
...

Setelan minSdkVersion dan targetSdkVersion menggantikan setelan AndroidManifest.xml untuk versi SDK minimum dan versi SDK target. Lihat “Mendeklarasikan versi Android” sebelumnya di bagian ini untuk informasi latar belakang tentang setelan ini.

Pernyataan testInstrumentationRunner ini menambahkan dukungan instrumentasi untuk menguji antarmuka pengguna dengan Espresso dan UIAutomator. Hal ini dijelaskan dalam pelajaran terpisah.

Tipe pembangunan

Tipe pembangunan untuk aplikasi ditetapkan di blok buildTypes { } , yang mengontrol cara aplikasi dibangun dan dipaketkan.

...
buildTypes {
   rilis {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'),
                                               'proguard-rules.pro'
   }
}
...

Tipe pembangunan yang ditetapkan adalah release untuk rilis aplikasi. Tipe pembangunan umum lainnya adalah debug. Mengonfigurasi tipe pembangunan dijelaskan dalam pelajaran terpisah.

Dependensi

Dependensi untuk aplikasi didefinisikan di blok dependencies { } , yang merupakan bagian file build.gradle yang paling mungkin berubah saat Anda mulai mengembangkan kode yang bergantung pada pustaka. Blok adalah bagian dari Gradle API standar dan termasuk di luar blok android { } .

...
dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
   })
   compile 'com.android.support:appcompat-v7:24.2.0'
   testCompile 'junit:junit:4.12'
}

Dalam cuplikan di atas, pernyataan compile fileTree(dir: 'libs', include: ['*.jar'])menambahkan dependensi semua file “.jar” di dalam direktori libs . Konfigurasi compile akan mengompilasi aplikasi utama — segala sesuatu di dalamnya ditambahkan ke classpath kompilasi, dan juga dipaketkan ke dalam APK final.

Menyinkronkan proyek Anda

Bila Anda membuat perubahan pada file konfigurasi pembangunan dalam proyek, Android Studio akan mengharuskan Anda untuk melakukan sinkronisasi file proyek sehingga Android Studio bisa mengimpor perubahan konfigurasi pembangunan dan menjalankan beberapa pemeriksaan untuk memastikan konfigurasi tidak akan menimbulkan kesalahan pembangunan.

Untuk menyinkronkan file proyek, klik Sync Now di bilah notifikasi yang muncul saat membuat perubahan, atau klik Sync Project dari bilah menu. Jika Android Studio memperlihatkan kesalahan apa pun dengan konfigurasi — misalnya, jika kode sumber menggunakan fitur API yang hanya tersedia di API level yang lebih tinggi dari compileSdkVersion — jendela Messages muncul untuk menjelaskan masalah.Menyinkronkan File Gradle di Proyek Android Studio

Menjalankan aplikasi pada emulator atau perangkat

Dengan emulator perangkat virtual, Anda bisa menguji aplikasi pada perangkat yang berbeda seperti tablet atau ponsel cerdas — dengan API level yang berbeda untuk versi Android yang berbeda — untuk memastikan aplikasi terlihat bagus dan berfungsi untuk sebagian besar pengguna. Meskipun ini adalah ide yang bagus, Anda tidak harus bergantung pada memiliki perangkat fisik yang tersedia untuk development aplikasi.

Pengelola Android Virtual Device (AVD) membuat perangkat virtual atau emulator yang menyimulasikan konfigurasi untuk tipe perangkat Android tertentu. Gunakan AVD Manager untuk mendefinisikan karakteristik perangkat keras perangkat dan API levelnya, dan untuk menyimpannya sebagai konfigurasi perangkat virtual. Ketika Anda memulai emulator Android, emulator akan membaca konfigurasi yang ditetapkan dan membuat perangkat emulasi pada komputer yang berperilaku sama persis dengan versi fisik perangkat.

Membuat perangkat virtual

Untuk menjalankan emulator pada komputer, gunakan AVD Manager untuk membuat konfigurasi yang menjelaskan perangkat virtual. Pilih Tools > Android > AVD Manager, atau klik ikon AVD Manager Ikon AVD Managerdi bilah alat.

Layar “Your Virtual Devices” muncul menampilkan semua perangkat virtual yang dibuat sebelumnya. Klik tombol +Create Virtual Device untuk membuat perangkat virtual baru.

AVD Manager

Anda bisa memilih perangkat dari daftar perangkat keras yang telah didefinisikan sebelumnya. Untuk setiap perangkat, tabel menampilkan ukuran tampilan diagonal (Size), resolusi layar dalam piksel (Resolution), dan kepadatan piksel (Density). Misalnya, kepadatan piksel perangkat Nexus 5 adalah xxhdpi, artinya aplikasi menggunakan ikon di folder xxhdpi dari folder mipmap. Selain itu, aplikasi akan menggunakan layout dan sumber daya dapat digambar dari folder yang didefinisikan untuk kepadatan tersebut.

Memilih Definisi Perangkat

Anda juga memilih versi sistem Android untuk perangkat. Tab Recommended menampilkan sistem yang disarankan untuk perangkat. Lebih banyak versi tersedia di dalam tab x86 Images dan Other Images.

Menjalankan aplikasi pada perangkat virtual

Untuk menjalankan aplikasi pada perangkat virtual yang Anda buat di bagian sebelumnya, ikuti langkah-langkah ini:

  1. Di Android Studio, pilih Run > Run app atau klik Run iconIkon Android Studio Run di bilah alat.
  2. Di jendela Select Deployment Target, pada Emulator yang tersedia, pilih perangkat virtual yang Anda buat, dan klik OK.

Emulator memulai dan mem-booting seperti perangkat fisik. Ini memerlukan waktu beberapa saat, bergantung pada kecepatan komputer Anda. Aplikasi membangun, dan setelah emulator siap, Android Studio mengunggah aplikasi ke emulator dan menjalankannya.

Anda harus melihat aplikasi yang dibuat dari template Empty Activity (“Hello World”) seperti yang ditampilkan dalam gambar berikut ini, yang juga menampilkan panel Run Android Studio yang menampilkan tindakan yang dilakukan untuk menjalankan aplikasi di emulator.

Catatan: Saat menguji pada emulator, praktik yang baik adalah memulainya sekali pada awal sesi, dan jangan menutupnya hingga selesai sehingga tidak perlu melalui proses booting kembali.
Emulator dan Run Log

Dalam gambar di atas:

  1. Emulator menjalankan aplikasi.
  2. Run Pane. Ini menampilkan tindakan yang dilakukan untuk memasang dan menjalankan aplikasi.

Menjalankan aplikasi pada perangkat fisik

Selalu uji aplikasi Anda pada perangkat fisik, karena pengguna akan menggunakan aplikasi pada perangkat fisik. Meskipun emulator cukup bagus, emulator tidak bisa menampilkan semua kemungkinan keadaan perangkat, seperti yang terjadi jika ada panggilan masuk sewaktu aplikasi berjalan. Untuk menjalankan aplikasi pada perangkat fisik, Anda memerlukan hal berikut ini:

  • Perangkat Android seperti ponsel cerdas atau tablet.
  • Kabel data untuk menghubungkan perangkat Android ke komputer melalui porta USB.
  • Jika Anda menggunakan Linux atau Windows, mungkin perlu melakukan langkah tambahan untuk menjalankan aplikasi pada perangkat keras. Periksa dokumentasi Menggunakan Perangkat Keras. Pada Windows, Anda mungkin perlu memasang driver USB yang sesuai untuk perangkat. Lihat Driver USB OEM.

Untuk memungkinkan Android Studio berkomunikasi dengan perangkat, aktifkan USB Debugging pada perangkat Android. Pada versi Android 4.2 dan yang lebih baru, layar opsi Developer disembunyikan secara default. Ikuti langkah-langkah ini untuk mengaktifkan USB Debugging:

  1. Pada perangkat fisik, buka Settings dan pilih Aboutphone di bagian bawah layar Settings.
  2. Ketuk informasi Build number tujuh kali.

    Anda membacanya dengan benar: Ketuk tujuh kali.

  3. Kembali ke layar sebelumnya (Settings). Developer Options saat ini muncul di bagian bawah layar. Ketuk Developer options.
  4. Pilih USB Debugging.

Sekarang, hubungkan perangkat dan jalankan aplikasi dari Android Studio.

Pemecahan masalah koneksi perangkat

Jika Android Studio tidak mengenali perangkat, coba hal berikut:

  1. Putuskan koneksi perangkat dari komputer, kemudian hubungkan kembali.
  2. Mulai ulang Android Studio.
  3. Jika komputer masih tidak menemukan perangkat atau mendeklarasikannya “tidak sah”:

    1. Putuskan koneksi perangkat dari komputer.

    2. Di perangkat, pilih Settings > Developer Options.

    3. Ketuk Revoke USB Debugging authorizations.

    4. Hubungkan kembali perangkat ke komputer.

    5. Bila dikonfirmasi, berikan otorisasi.

  4. Anda mungkin perlu memasang driver USB yang sesuai untuk perangkat. Lihat dokumentasi Menggunakan Perangkat Keras.
  5. Periksa dokumentasi terakhir, forum pemrograman, atau dapatkan bantuan dari instruktur Anda.

Menggunakan log

Log merupakan alat (bantu) debug andal yang bisa Anda gunakan untuk melihat nilai, jalur eksekusi, dan pengecualian. Setelah menambahkan pernyataan log ke aplikasi, pesan log Anda akan muncul bersama pesan log umum di tab logcat panel Android Monitor di Android Studio.

Untuk melihat panel Android Monitor, klik tombol Android Monitor di bagian bawah jendela utama Android Studio. Android Monitor menawarkan dua tab:

  • Tab logcat. Tab logcat menampilkan pesan log tentang aplikasi saat aplikasi berjalan. Jika menambahkan pernyataan logging ke aplikasi, pesan log Anda dari pernyataan tersebut muncul dengan pesan log lain di bawah tab ini.
  • Tab Monitors. Tab Monitors memantau kinerja aplikasi, yang bisa digunakan untuk men-debug dan menyesuaikan kode Anda.

Menambahkan pernyataan log ke aplikasi Anda

Pernyataan log menambahkan pesan apa pun yang Anda tetapkan ke log. Menambahkan pernyataan log di titik tertentu dalam kode memungkinkan developer melihat nilai, jalur eksekusi, dan pengecualian.

Misalnya, pernyataan log berikut menambahkan "MainActivity" dan "Hello World" ke log:

Log.d("MainActivity", "Hello World");

Berikut adalah elemen pernyataan ini:

  • Log: Kelas Log adalah API untuk mengirim pesan log.
  • d: Anda menetapkan log level sehingga Anda bisa memfilter pesan log menggunakan menu tarik-turun di bagian tengah panel tab logcat. Berikut adalah tingkat log yang bisa Anda tetapkan:
    • d: Pilih Debug atau Verbose untuk melihat pesan ini.
    • e: Pilih Error atau Verbose untuk melihat pesan ini.
    • w: Pilih Warning atau Verbose untuk melihat pesan ini.
    • i: Pilih Info atau Verbose untuk melihat pesan ini.
  • "MainActivity": Argumen pertama adalah log tag yang bisa digunakan untuk memfilter pesan pada tab logcat. Ini biasanya merupakan nama aktivitas tempat pesan berasal. Akan tetapi, Anda bisa membuatnya menjadi apa saja yang berguna bagi Anda untuk men-debug aplikasi. Praktik terbaik adalah untuk menggunakan konstanta sebagai tag log, seperti berikut:
  1. Definisikan tag log sebagai konstanta sebelum menggunakannya dalam pernyataan log:
      private static final String LOG_TAG =
           MainActivity.class.getSimpleName();
    
  2. Gunakan konstanta dalam pernyataan log:
    Log.d(LOG_TAG, "Hello World");
    
  3. "Hello World": Argumen kedua adalah pesan sebenarnya yang muncul setelah log level dan tag log pada tab logcat.

Menampilkan pesan log Anda

Panel Run muncul di tempat panel Android Monitor bila Anda menjalankan aplikasi di emulator atau perangkat. Setelah mulai menjalankan aplikasi, klik tombol Android Monitor di bagian bawah jendela utama, kemudian klik tab logcat di panel Android Monitor jika belum dipilih.

Android Monitor yang Menampilkan Pesan Log

Dalam gambar di atas:

  1. Pernyataan log di metode onCreate() dari MainActivity.
  2. Panel Android Monitor yang menampilkan pesan log logcat , termasuk pesan dari pernyataan log.

Secara default, tampilan log disetel ke Verbose di menu tarik-turun di bagian atas tampilan logcat untuk menampilkan semua pesan. Anda bisa mengubahnya menjadi Debug untuk melihat pesan yang dimulai dengan Log.d, atau mengubahnya menjadi Error untuk melihat pesan yang dimulai dengan Log.e, dan seterusnya.

 

1.2: Layout, Tampilan, dan Sumber Daya

Bab ini menjelaskan layout antarmuka pengguna di layar dan sumber daya lain yang Anda buat untuk aplikasi, dan kode yang akan digunakan untuk merespons ketukan pengguna pada elemen antarmuka pengguna.

Pola model-view-presenter

Menautkan aktivitas ke sumber daya layout adalah contoh dari bagian pola arsitektur model-view-presenter (MVP). Pola MVP adalah cara yang sudah umum digunakan untuk mengelompokkan fungsi aplikasi:

  • Tampilan. Tampilan adalah elemen antarmuka pengguna yang menampilkan data dan respons terhadap tindakan pengguna. Setiap elemen layar adalah tampilan. Sistem Android menyediakan berbagai jenis tampilan.
  • Presenter. Presenter menghubungkan tampilan aplikasi ke model. Presenter menyediakan tampilan dengan data sebagaimana ditetapkan oleh model, dan juga menyediakan masukan pengguna dari tampilan kepada model.
  • Model. Model menetapkan struktur data aplikasi dan kode untuk mengakses dan memanipulasi data. Beberapa aplikasi yang Anda buat dalam pelajaran bisa digunakan bersama model untuk mengakses data. Aplikasi Hello Toast tidak menggunakan model data, namun Anda bisa memikirkan logikanya — menampilkan pesan, dan meningkatkan penghitung ketukan — sebagai model.

Pola Arsitektur Model-View-Presenter (MVP)

Tampilan

UI terdiri dari hierarki objek yang disebut tampilan, setiap elemen layar adalah tampilan. Kelas Viewmenyatakan blok pembangunan dasar untuk semua komponen UI, dan kelas dasar untuk kelas yang menyediakan komponen UI interaktif seperti tombol, kotak centang, dan bidang entri teks.

Tampilan memiliki lokasi, yang dinyatakan sebagai pasangan koordinat kiri dan atas, dan dua dimensi, yang dinyatakan sebagai lebar dan tinggi. Unit untuk lokasi dan dimensi adalah piksel yang tidak tergantung perangkat (dp).

Sistem Android menyediakan ratusan tampilan yang telah didefinisikan sebelumnya, termasuk yang menampilkan:

  • Teks (TextView)
  • Bidang untuk memasukkan dan mengedit teks (EditText)
  • Pengguna tombol bisa mengetuk (Button) dan komponen interaktif lainnya
  • Teks yang bisa digulir (ScrollView) dan item yang bisa digulir (RecyclerView)
  • Gambar (ImageView)

Anda bisa mendefinisikan tampilan untuk muncul di layar dan merespons ketukan pengguna. Tampilan juga bisa didefinisikan untuk menerima masukan teks, atau tidak terlihat hingga diperlukan.

Anda bisa menetapkan tampilan di file sumber daya layout XML. Sumber daya layout ditulis dalam XML dan dicantumkan dalam folder layout di folder res dalam Project: Tampilan Android.

Grup tampilan

Tampilan bisa dikelompokkan bersama di dalam grup tampilan (ViewGroup), yang berfungsi sebagai kontainer tampilan. Hubungannya adalah induk-anak, dalam hal ini induk adalah grup tampilan, dan anakadalah tampilan atau grup tampilan dalam grup. Berikut ini adalah grup tampilan yang umum:

  • ScrollView: Grup yang berisi satu tampilan anak lainnya dan memungkinkan pengguliran tampilan anak.
  • RecyclerView: Grup yang berisi daftar tampilan atau grup tampilan lainnya dan memungkinkan penggulirannya dengan menambahkan dan membuang tampilan secara dinamis dari layar.

Grup tampilan layout

Tampilan untuk layar dikelola dalam hierarki. Di akar hierarki ini adalah ViewGroup yang berisi layout keseluruhan layar. Layar anak grup tampilan bisa menjadi tampilan atau grup tampilan lain seperti yang ditampilkan dalam gambar berikut.Hierarki Tampilan

Dalam gambar di atas:

  1. Grup tampilan akar.
  2. Rangkaian tampilan anak dan grup tampilan pertama yang induknya adalah akar.

Beberapa grup tampilan ditandai sebagai layout karena grup tampilan tersebut mengelola tampilan anak dalam cara khusus dan umumnya digunakan sebagai grup tampilan akar. Beberapa contoh layout adalah:

  • LinearLayout: Grup tampilan anak yang diposisikan dan disejajarkan secara horizontal atau secara vertikal.
  • RelativeLayout: Grup tampilan anak yang setiap tampilannya diposisikan dan disejajarkan relatif terhadap tampilan dalam grup tampilan. Dengan kata lain, posisi tampilan anak bisa dijelaskan dalam hubungan satu sama lain atau dengan grup tampilan induk.
  • ConstraintLayout: Grup tampilan anak yang menggunakan titik jangkar, tepi, dan panduan untuk mengontrol cara memosisikan tampilan relatif terhadap elemen lain di layout. ConstraintLayout didesain untuk mempermudah saat menyeret dan melepaskan tampilan di editor layout.
  • TableLayout: Grup tampilan anak yang disusun ke dalam baris dan kolom.
  • AbsoluteLayout: Grup yang memungkinkan Anda menetapkan lokasi pasti (koordinat x/y) tampilan anaknya. Layout mutlak bersifat kurang fleksibel dan lebih sulit dikelola daripada tipe layout lainnya tanpa pemosisian mutlak.
  • FrameLayout: Grup tampilan anak bertumpuk. FrameLayout didesain untuk memblokir area di layar guna menampilkan satu tampilan. Tampilan anak digambar bertumpuk, dengan anak yang baru saja ditambahkan di atas. Ukuran FrameLayout adalah ukuran tampilan anak terbesarnya.
  • GridLayout: Grup yang menempatkan layar anaknya dalam kotak persegi panjang yang bisa digulir.Representasi Visual Layout

Tip: Ketahui selengkapnya tentang tipe layout yang berbeda di Objek Layout Umum.

Contoh sederhana dari layout dengan tampilan anak adalah aplikasi Hello Toast di salah satu pelajaran awal. Tampilan aplikasi Hello Toast muncul dalam gambar di bawah ini sebagai diagram file layout (activity_main.xml), bersama diagram hierarki (kanan atas) dan tangkapan layar layout yang benar-benar selesai (kanan bawah).Konsep Layout (kiri)

Dalam gambar di atas:

  1. Layout akar LinearLayout, yang berisi semua tampilan anak, disetel ke orientasi vertikal.
  2. Button (button_toast) tampilan anak. Sebagai tampilan anak pertama, muncul di bagian atas di layout linear.
  3. TextView (show_count) tampilan anak. Sebagai tampilan anak kedua, muncul di bawah tampilan anak pertama di layout linear.
  4. Button (button_count) tampilan anak. Sebagai tampilan anak ketiga, muncul di bawah tampilan anak kedua di layout linear.

Hierarki tampilan bisa tumbuh menjadi kompleks untuk aplikasi yang menampilkan banyak tampilan di layar. Penting untuk memahami hierarki tampilan, karena akan memengaruhi apakah tampilan terlihat dan apakah digambar secara efisien.

Tip: Anda bisa menjelajahi hierarki tampilan aplikasi menggunakan Hierarchy Viewer. Hierarchy Viewer menampilkan tampilan pohon hierarki dan memungkinkan Anda menganalisis kinerja tampilan di perangkat Android. Masalah kinerja dibahas di bab berikutnya.

Anda mendefinisikan tampilan di editor layout, atau dengan memasukkan kode XML. Editor layout menunjukkan representasi visual kode XML.

Menggunakan editor layout

Gunakan editor layout untuk mengedit file layout. Anda bisa menyeret dan melepas objek tampilan ke dalam panel grafik, serta menyusun, mengubah ukuran, dan menetapkan propertinya. Anda akan segera melihat efek perubahan yang dilakukan.

Untuk menggunakan editor layout, buka file layout XML. Editor layout muncul bersama tab Design di bagian bawah yang disorot. (Jika tab Text disorot dan Anda melihat kode XML, klik tab Design.) Untuk template Empty Activity, layout seperti yang ditampilkan dalam gambar di bawah ini.Editor Layout

Dalam gambar di atas:

  1. File XML layout. File layout XML, biasanya diberi nama file activiy_main.xml. Klik dua kali untuk membuka editor layout.
  2. Palet elemen UI (tampilan). Panel Palette menyediakan daftar elemen UI dan layout. Tambahkan elemen atau layout ke UI dengan menyeretnya ke panel desain.
  3. Bilah alat desain. Bilah alat panel desain menyediakan tombol untuk mengonfigurasi penampilan layout dalam panel desain dan untuk mengedit properti layout. Lihat gambar di bawah ini untuk detail.

    Tip: Arahkan kursor ke atas setiap ikon untuk menampilkan keterangan alat yang merangkum fungsinya.

  4. Panel Properties. Panel Properties menyediakan kontrol properti untuk tampilan yang dipilih.
  5. Kontrol properti. Kontrol properti sesuai dengan atribut XML. Yang ditampilkan dalam gambar adalah properti Text dari TextView yang dipilih, yang disetel ke Hello World!.
  6. Panel desain. Seret tampilan dari panel Palette ke panel desain untuk memosisikannya di layout.
  7. Component Tree. Panel Component Tree menampilkan hierarki tampilan. Klik tampilan atau grup tampilan dalam panel ini untuk memilihnya. Gambar menampilkan TextView yang dipilih.
  8. Tab Design dan Text. Klik Design untuk melihat editor layout, atau Text untuk melihat kode XML.

Bilah alat (bantu) desain editor layout menawarkan deretan tombol yang memungkinkan Anda mengonfigurasi penampilan layout:Bilah Alat Desain

Dalam gambar di atas:

  1. DesignBlueprint, dan Both: Klik ikon Design (ikon pertama) untuk menampilkan pratinjau warna layout. Klik ikon Blueprint (ikon tengah) untuk hanya menampilkan ringkasan setiap tampilan. Anda bisa melihat kedua tampilan bersebelahan dengan mengeklik ikon ketiga.
  2. Orientasi layar: Klik untuk memutar perangkat antara lanskap dan potret.
  3. Tipe dan ukuran perangkat: Pilih tipe perangkat (ponsel/tablet, Android TV, atau Android Wear) dan konfigurasi layar (ukuran dan kepadatan).
  4. Versi API: Pilih versi Android yang digunakan untuk pratinjau layout.
  5. Tema aplikasi: Pilih tema UI yang akan diterapkan pada pratinjau.
  6. Bahasa: Pilih bahasa untuk menampilkan string UI Anda. Daftar ini hanya menampilkan bahasa yang tersedia dalam sumber daya string.
  7. Varian Layout: Alihkan ke salah satu layout alternatif untuk file ini, atau buat yang baru.

Editor layout menawarkan lebih banyak fitur di tab Design bila Anda menggunakan ConstraintLayout, termasuk tuas untuk mendefinisikan pembatas. Pembatas adalah koneksi atau penyejajaran ke tampilan lainnya, ke layout induk, atau ke panduan yang tidak terlihat. Setiap pembatas muncul sebagai garis yang membentang dari tuas melingkar. Setiap tampilan memiliki tuas pembatas melingkar di bagian tengah setiap sisi. Setelah memilih tampilan di panel Component Tree atau mengekliknya di layout, tampilan juga menampilkan tuas pengubah ukuran pada setiap sudut.Tuas Pembatas dan Pengubah Ukuran pada Tampilan

Dalam gambar di atas:

  1. Tuas pengubah ukuran.
  2. Garis pembatas dan tuas. Dalam gambar, pembatas menyejajarkan sisi kiri tampilan ke sisi kiri tombol.
  3. Tuas patokan. Tuas patokan menyejajarkan patokan teks tampilan ke patokan tampilan lainnya.
  4. Tuas pembatas tanpa garis pembatas.

Menggunakan XML

Terkadang lebih cepat dan lebih mudah mengedit kode XML secara langsung, terutama saat menyalin dan menempelkan kode untuk tampilan serupa.

Untuk menampilkan dan mengedit kode XML, buka file layout XML. Editor layout muncul bersama tab Design di bagian bawah yang disorot. Klik tab Text untuk melihat kode XML. Yang berikut ini menampilkan cuplikan kode XML untuk LinearLayout dengan Button dan TextView:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    ... >

    <Button
        android:id="@+id/button_toast"
        android:layout_width="@dimen/my_view_width"
        android:layout_height="wrap_content"
        ... />

 <TextView
        android:id="@+id/show_count"
        android:layout_width="@dimen/my_view_width"
        android:layout_height="@dimen/counter_height"
        ... />
    ...
</LinearLayout>

Atribut XML (properti tampilan)

Tampilan memiliki properti yang mendefinisikan tempat munculnya tampilan di layar, ukurannya, dan bagaimana kaitan tampilan dengan tampilan lainnya, dan cara tampilan merespons masukan pengguna. Saat mendefinisikan tampilan di XML, properti dirujuk sebagai atribut.

Misalnya, dalam keterangan XML TextView berikut, android:idandroid:layout_widthandroid:layout_heightandroid:background, merupakan atribut XML yang diterjemahkan secara otomatis menjadi properti TextView:

<TextView
       android:id="@+id/show_count"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@color/myBackgroundColor"
       android:textStyle="bold"
       android:text="@string/count_initial_value"
/>

Atribut biasanya berbentuk seperti ini:

android:attribute_name="value"

attribute_name adalah nama atribut. value adalah string dengan nilai untuk atribut. Misalnya:

android:textStyle="bold"

Jika value adalah sumber daya, seperti warna, simbol @ menetapkan jenis sumber dayanya. Misalnya:

android:background="@color/myBackgroundColor"

Atribut latar belakang disetel ke sumber daya warna yang diidentifikasi sebagai myBackgroundColor, yang dideklarasikan sebagai #FFF043. Sumber daya warna dijelaskan dalam “Atribut terkait gaya” dalam bab ini.

Setiap tampilan dan grup tampilan mendukung berbagai atribut XML-nya sendiri. Beberapa atribut telah ditetapkan untuk tampilan (misalnya, TextView mendukung atribut textSize ), namun atribut-atribut ini juga diwarisi oleh tampilan apa pun yang mungkin memperluas kelas TextView. Sebagian bersifat umum untuk semua tampilan, karena diwarisi dari kelas View akar (seperti atribut android:id ). Untuk keterangan atribut khusus, lihat bagian ringkasan dokumentasi kelas View.

Mengidentifikasi tampilan

Untuk mengidentifikasi tampilan secara unik dan merujuknya dari kode, Anda harus memberikan ID. Atribut android:id memungkinkan Anda menetapkan id yang unik— yakni identifier sumber daya untuk tampilan.

Misalnya:

android:id="@+id/button_count"

Bagian "@+id/button_count" dari atribut di atas akan membuat id baru yang disebut button_countuntuk tampilan. Anda menggunakan simbol plus (+) untuk menunjukkan bahwa Anda sedang membuat baru id.

Merujuk tampilan

Untuk merujuk ke identifier sumber daya yang ada, hilangkan simbol plus (+). Misalnya, untuk merujuk tampilan berdasarkan id -nya dalam atribut lain, misalnya android:layout_toLeftOf (yang dijelaskan di bagian berikutnya) untuk mengontrol posisi tampilan, Anda perlu menggunakan:

android:layout_toLeftOf="@id/show_count"

Dalam atribut di atas, "@id/show_count" merujuk ke tampilan dengan identifier sumber daya show_count. Atribut memosisikan tampilan agar “ke kiri dari” tampilan show_count .

Memosisikan tampilan

Beberapa atribut pemosisian yang terkait layout diperlukan untuk tampilan, dan secara otomatis muncul bila Anda menambahkan tampilan ke layout XML, siap untuk Anda tambahkan nilainya.

Pemosisian LinearLayout

Misalnya, LinearLayout diperlukan untuk menyetel atribut ini:

  • android:layout_width
  • android:layout_height
  • android:orientation

Atribut android:layout_width dan android:layout_height bisa menggunakan salah satu dari tiga nilai ini:

  • match_parent akan meluaskan tampilan untuk mengisi induknya dengan lebar dan tinggi. Bila LinearLayout adalah tampilan akar, ia akan meluaskan ke ukuran layar perangkat. Untuk tampilan dalam grup tampilan akar, ia akan meluaskan ke ukuran grup tampilan induk.
  • wrap_content akan menciutkan dimensi tampilan yang cukup besar untuk menampung isinya. (Jika tidak ada isinya, tampilan menjadi tidak terlihat.)
  • Gunakan dp (piksel yang tidak tergantung perangkat) berjumlah tetap untuk menetapkan ukuran tetap, yang disesuaikan untuk ukuran layar perangkat. Misalnya, 16dp berarti 16 piksel yang tidak tergantung perangkat. Piksel yang tidak tergantung perangkat dan dimensi lain dijelaskan di “Dimensi” dalam bab ini.

Atribut android:orientation bisa berupa:

  • horizontal: Tampilan disusun dari kiri ke kanan.
  • vertical: Tampilan disusun dari atas ke bawah.

Atribut terkait layout lainnya antara lain:

  • Android:layout_gravity: Atribut ini digunakan bersama tampilan untuk mengontrol tempat menyusun tampilan dalam grup tampilan induknya. Misalnya, atribut berikut memusatkan tampilan secara horizontal di layar:
    android:layout_gravity="center_horizontal"
    
  • Pengisi adalah ruang, yang diukur dalam piksel yang tidak tergantung perangkat, antara tepi tampilan dan isi tampilan, seperti yang ditampilkan dalam gambar di bawah ini.Pengisi

Dalam gambar di atas:

  1. Pengisi adalah ruang antara tepi tampilan (garis putus-putus) dan isi tampilan (garis utuh). Pengisi tidak sama dengan margin, yang merupakan ruang dari tepi tampilan ke induknya.

Ukuran tampilan menyertakan pengisinya. Berikut ini adalah atribut pengisi yang umum digunakan:

  • Android:padding: Menyetel pengisi keempat tepi.
  • android:paddingTop: Menyetel pengisi tepi atas.
  • android:paddingBottom: Menyetel pengisi tepi bawah.
  • android:paddingLeft: Menyetel pengisi tepi kiri.
  • android:paddingRight: Menyetel pengisi tepi kanan.
  • android:paddingStart: Menyetel pengisi awal tampilan; digunakan di tempat di atas, terutama bersama tampilan yang panjang dan sempit.
  • android:paddingEnd: Menyetel pengisi, dalam piksel, tepi ujung; yang digunakan bersama android:paddingStart.

Tip: Untuk melihat semua atribut XML untuk LinearLayout, lihat bagian Rangkuman referensi LinearLayout di Panduan Developer. Layout akar lainnya, seperti RelativeLayout dan AbsoluteLayout, mencantumkan atribut XML-nya di bagian Rangkuman.

Pemosisian RelativeLayout

Grup tampilan berguna lainnya untuk layout adalah RelativeLayout, yang bisa Anda gunakan untuk memosisikan tampilan anak yang berhubungan satu sama lain atau dengan induk. Atribut yang bisa Anda gunakan bersama RelativeLayout antara lain berikut ini:

  • android:layout_toLeftOf: Memosisikan tepi kanan tampilan ini ke kiri tampilan lainnya (yang diidentifikasi melalui ID-nya).
  • android:layout_toRightOf: Memosisikan tepi kiri tampilan ini ke kanan tampilan lainnya (yang diidentifikasi melalui ID-nya).
  • android:layout_centerHorizontal: Memusatkan tampilan ini secara horizontal dalam induknya.
  • android:layout_centerVertical: Memusatkan tampilan ini secara vertikal dalam induknya.
  • android:layout_alignParentTop: Memosisikan tepi atas tampilan ini agar cocok dengan tepi atas induknya.
  • android:layout_alignParentBottom: Memosisikan tepi bawah tampilan ini agar cocok dengan tepi bawah induknya.

Untuk daftar lengkap atribut tampilan dalam RelativeLayout, lihat RelativeLayout.LayoutParams.

Atribut terkait gaya

Anda menetapkan atribut gaya untuk menyesuaikan penampilan tampilan. Tampilan yang tidak memiliki atribut gaya, misalnya android:textColorandroid:textSize, dan android:background, menggunakan gaya yang didefinisikan di tema aplikasi.

Berikut ini adalah atribut terkait gaya yang digunakan dalam contoh layout XML di bagian sebelumnya:

  • Android:background: Menetapkan warna atau sumber daya dapat digambar untuk digunakan sebagai latar belakang.
  • android:text: Menetapkan teks untuk ditampilkan di tampilan.
  • android:textColor: Menetapkan warna teks.
  • android:textSize: Menetapkan ukuran teks.
  • android:textStyle: Menetapkan gaya teks, misalnya bold.

File sumber daya

File sumber daya adalah cara memisahkan nilai statis dari kode sehingga Anda tidak harus mengubah kode itu sendiri untuk mengubah nilai. Anda bisa menyimpan semua string, layout, dimensi, warna, gaya, dan teks menu secara terpisah di file sumber daya.

File sumber daya disimpan dalam folder yang berada di folder res, termasuk:

  • drawable: Untuk gambar dan ikon
  • layout: Untuk file sumber daya layout
  • menu: Untuk item menu
  • mipmap: Untuk kumpulan ikon aplikasi yang sudah dihitung dan dioptimalkan yang digunakan oleh Peluncur
  • values: Untuk warna, dimensi, string, dan gaya (atribut tema)

Sintaks untuk merujuk sumber daya di layout XML adalah seperti berikut:

@package_name:resource_type/resource_name
  • package_name adalah nama paket tempat sumber daya berada. Ini tidak diperlukan saat merujuk sumber daya dari paket yang sama — yakni, yang disimpan di folder res proyek Anda.
  • resource_type adalah R subkelas untuk tipe sumber daya. Lihat Tipe Sumber Daya untuk informasi selengkapnya tentang setiap tipe sumber daya dan cara merujuknya.
  • resource_name adalah nama file sumber daya tanpa ekstensi, atau nilai atribut android:name di elemen XML.

Misalnya, pernyataan layout XML berikut menyetel atribut android:text ke sumber daya string :

android:text="@string/button_label_toast"
  • resource_type adalah string.
  • resource_name adalah button_label_toast.
  • package_name tidak diperlukan karena sumber daya disimpan di proyek (dalam file strings.xml).

Contoh lainnya: pernyataan layout XML ini menyetel atribut android:background ke sumber daya color , dan karena sumber daya didefinisikan di proyek (dalam file colors.xml), package_name tidak ditetapkan:

android:background="@color/colorPrimary"

Dalam contoh berikut, pernyataan layout XML menyetel atribut android:textColor ke sumber daya color . Akan tetapi, sumber daya tidak didefinisikan dalam proyek, melainkan disediakan oleh Android, sehingga package_nameandroid juga harus ditetapkan, yang diikuti dengan titik dua:

android:textColor="@android:color/white"

Tip: Untuk informasi selengkapnya tentang mengakses sumber daya dari kode, lihat Mengakses Sumber Daya. Untuk konstanta warna Android, lihat sumber daya R.color standar Android.

File sumber daya nilai

Menyimpan nilai sebagai string dan warna dalam file sumber daya terpisah mempermudah pengelolaannya, terutama jika Anda menggunakannya lebih dari sekali di layout.

Misalnya, penting sekali menyimpan string dalam file sumber daya terpisah untuk menerjemahkan dan melokalkan aplikasi, sehingga Anda bisa membuat file sumber daya string untuk setiap bahasa tanpa mengubah kode. File sumber daya untuk gambar, warna, dimensi, dan atribut lainnya berguna untuk mengembangkan aplikasi bagi orientasi dan ukuran layar perangkat yang berbeda.

String

Sumber daya string berada dalam file strings.xml dalam folder values di dalam folder res saat menggunakan Project: Tampilan Android. Anda bisa mengedit file ini secara langsung dengan membukanya:

<resources>
    <string name="app_name">Hello Toast</string>
    <string name="button_label_count">Count</string>
    <string name="button_label_toast">Toast</string>
    <string name="count_initial_value">0</string>
</resources>

Di sini, name (misalnya, button_label_count) adalah nama sumber daya yang Anda gunakan di kode XML, seperti dalam atribut berikut:

android:text="@string/button_label_count"

Nilai string name ini adalah kata (Count) yang dimasukkan dalam tag <string></string> (Anda jangan menggunakan tanda kutip kecuali jika tanda kutip harus menjadi bagian dari nilai string.)

Mengekstrak string ke sumber daya

Anda juga harus mengekstrak string hard-code dalam file layout XML ke sumber daya string. Untuk mengekstrak string hard-code dalam layout XML, ikuti langkah-langkah ini (lihat gambar):Mengekstrak Sumber Daya StringMemberi Nama Sumber Daya String

  1. Klik string hard-code, dan tekan Alt-Enter di Windows, atau Option-Return pada Mac OS X.
  2. Pilih Extract string resource.
  3. Edit nama Sumber Daya untuk nilai string.

Selanjutnya Anda bisa menggunakan nama sumber daya di kode XML. Gunakan ekspresi "@string/resource_name" (termasuk tanda kutip) untuk merujuk sumber daya string:

android:text="@string/button_label_count"

Warna

Sumber daya warna berada di file colors.xml dalam folder values di dalam folder res saat menggunakan Project: Tampilan Android. Anda bisa mengedit file ini secara langsung:

<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="myBackgroundColor">#FFF043</color>
</resources>

Di sini, name (misalnya, colorPrimary) adalah nama sumber daya yang Anda gunakan dalam kode XML:

android:textColor="@color/colorPrimary"

Nilai warna name ini adalah nilai warna heksadesimal (#3F51B5) yang dimasukkan dalam tag <color></color> . Nilai heksadesimal menetapkan nilai merah, hijau, dan biru (RGB). Nilai selalu diawali dengan karakter pound (#), yang diikuti dengan informasi Alpha-Red-Green-Blue. Misalnya, nilai heksadesimal hitam adalah #000000, sedangkan nilai heksadesimal untuk varian biru langit adalah #559fe3. Nilai warna dasar dicantumkan dalam dokumentasi kelas Color.

Warna colorPrimary adalah salah satu warna dasar yang telah didefinisikan sebelumnya dan digunakan untuk bilah aplikasi. Di aplikasi produksi, Anda bisa, misalnya, menyesuaikannya agar sesuai dengan merek. Menggunakan warna dasar untuk elemen UI lainnya akan membuat UI seragam.

Tip: Untuk spesifikasi desain material warna Android, lihat Gaya dan Menggunakan Tema Material. Untuk nilai heksadesimal warna umum, lihat Kode Warna Heksadesimal. Untuk konstanta warna Android, lihat sumber daya R.color standar Android.

Anda bisa melihat blok kecil pilihan warna di margin kiri di sebelah deklarasi sumber daya warna di colors.xml, juga di margin kiri di sebelah atribut yang menggunakan nama sumber daya di file XML layout.Blok Warna di File Sumber DayaBlok Warna di File Layout

Tip: Untuk melihat warna di munculan, aktifkan fitur dokumentasi Munculan otomatis. Pilih Android Studio > Preferences > Editor > General > Code Completion, dan centang opsi “Autopopup documentation in (ms)”. Selanjutnya Anda bisa mengarahkan kursor ke atas nama sumber daya warna untuk melihat warnanya.

Dimensi

Dimensi harus dipisahkan dari kode untuk mempermudah pengelolaannya, terutama jika Anda perlu menyesuaikan layout untuk resolusi perangkat yang berbeda. Selain itu juga memudahkan pengukuran yang konsisten untuk tampilan, dan untuk mengubah ukuran beberapa tampilan dengan mengubah satu sumber daya dimensi.

Sumber daya dimensi berada di file dimens.xml dalam folder values di dalam folder res saat menggunakan Project: Tampilan Android. dimens.xml yang ditampilkan di tampilan bisa menjadi folder yang memiliki lebih dari satu file dimens.xml untuk resolusi perangkat yang berbeda. Misalnya, aplikasi yang dibuat dari template Empty Activity menyediakan file dimens.xml kedua untuk 820 dp.

Anda bisa mengedit file ini secara langsung dengan membukanya:

<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="my_view_width">300dp</dimen>
    <dimen name="count_text_size">200sp</dimen>
    <dimen name="counter_height">300dp</dimen>
</resources>

Di sini, name (misalnya, activity_horizontal_margin) adalah nama sumber daya yang Anda gunakan di kode XML:

android:paddingLeft="@dimen/activity_horizontal_margin"

Nilai name ini adalah pengukuran (16dp) yang dimasukkan dalam tag <dimen></dimen> .

Anda bisa mengekstrak dimensi dengan cara yang sama seperti string:

  1. Klik dimensi hard-code, dan tekan Alt-Enter di Windows, atau tekan Option-Return di Mac OS X.
  2. Pilih Extract dimension resource.
  3. Edit nama Sumber Daya untuk nilai dimensi.

Piksel yang tidak tergantung perangkat (dp) tidak tergantung resolusi layar. Misalnya, 10px (10 piksel tetap) akan terlihat sedikit lebih kecil pada layar yang beresolusi lebih tinggi, namun Android akan menskalakan 10dp (10 piksel yang tidak tergantung perangkat) untuk melihat langsung di layar resolusi berbeda. Ukuran teks juga bisa disetel untuk terlihat langsung di layar resolusi berbeda dengan menggunakan ukuran piksel yang diskalakan (sp).

Tip: Untuk informasi selengkapnya tentang unit dp dan sp , lihat Mendukung Kepadatan Berbeda.

Gaya

Gaya adalah sumber daya yang menetapkan atribut umum seperti tinggi, pengisi, warna font, ukuran font, dan warna latar belakang. Gaya ditujukan untuk atribut yang memodifikasi rupa tampilan.

Gaya didefinisikan di file styles.xml dalam folder values di dalam folder res saat menggunakan Project: Tampilan Android. Anda bisa mengedit file ini secara langsung. Gaya dibahas dalam bab berikutnya, bersama Spesifikasi Desain Material.

File sumber daya lainnya

Android Studio mendefinisikan sumber daya lainnya yang dibahas dalam bab lain:

  • Gambar dan ikon. Folder drawable menyediakan sumber daya ikon dan gambar. Jika aplikasi Anda tidak memiliki folder drawable, Anda bisa membuatnya di dalam folder res secara manual. Untuk informasi selengkapnya tentang sumber daya dapat digambar, lihat Sumber Daya Dapat Digambardi bagian Sumber Daya Aplikasi dari Panduan Developer Android.
  • Ikon yang dioptimalkan. Folder mipmap umumnya berisi kumpulan ikon aplikasi yang sudah dihitung dan dioptimalkan, yang digunakan oleh Peluncur. Luaskan folder untuk melihat apakah versi ikon disimpan sebagai sumber daya untuk kepadatan layar yang berbeda.
  • Menu. Anda bisa menggunakan file sumber daya XML untuk mendefinisikan item menu dan menyimpannya di proyek dalam folder menu. Menu dijelaskan dalam bab berikutnya.

Merespons klik tampilan

Kejadian klik terjadi bila pengguna mengetuk atau mengeklik tampilan yang bisa diklik seperti Button, ImageButton, ImageView (mengetuk atau mengeklik gambar), atau FloatingActionButton.

Pola model-view-presenter berguna untuk memahami cara merespons klik tampilan. Bila kejadian terjadi bersama tampilan, kode presenter akan melakukan aksi yang memengaruhi kode model. Agar pola ini berfungsi, Anda harus:

  • Menulis metode Java yang melakukan aksi khusus, yang ditentukan oleh logika kode model — yakni tindakan yang bergantung pada hal yang Anda inginkan untuk dilakukan aplikasi bila kejadian ini terjadi. Ini biasanya disebut sebagai penangan kejadian.
  • Mengaitkan metode penangan kejadian ini ke tampilan, sehingga metode berjalan bila kejadian terjadi.

Atribut onClick

Android Studio menyediakan pintasan untuk mempersiapkan tampilan yang bisa diklik, dan untuk mengaitkan penangan kejadian dengan tampilan: gunakan atribut android:onClick bersama elemen tampilan yang bisa diklik di layout XML.

Misalnya, ekspresi XML berikut di file layout untuk serangkaian Button. showToast() sebagai penangan kejadian:

android:onClick="showToast"

Bila tombol bdiketuk, atribut android:onClick -nya akan memanggil metode showToast() .

Tulis penangan kejadian, misalnya showToast() yang direferensikan dalam kode XML di atas, untuk memanggil metode lain yang mengimplementasikan logika model aplikasi:

public void showToast(View view) {
        // Do something in response to the button click.
}

Agar dapat digunakan bersama atribut android:onClick , metode showToast() harus berupa public, mengembalikan void, dan memerlukan parameter view agar dapat mengetahui tampilan mana yang memanggil metode.

Android Studio menyediakan pintasan untuk membuat stub penangan kejadian (placeholder untuk metode yang bisa Anda isi nanti) di kode Java untuk aktivitas yang terkait dengan layout XML. Ikuti langkah-langkah ini:

  1. Di dalam file layout XML (misalnya activity_main.xml), klik nama metode dalam pernyataan atribut android:onClick .
  2. Tekan Alt-Enter di Windows atau Option-Return di Mac OS X, dan pilih Create onClick event handler.
  3. Pilih aktivitas yang terkait dengan file layout (misalnya MainActivity) dan klik OK. Ini akan membuat stub metode placeholder di MainActivity.java.

Memperbarui tampilan

Untuk memperbarui materi tampilan, misalnya mengganti teks di TextView, terlebih dahulu kode Anda harus membuat instance objek dari tampilan. Selanjutnya kode Anda bisa memperbarui objek, dengan demikian memperbarui tampilan.

Untuk merujuk tampilan dalam kode Anda, gunakan metode findViewById() kelas View, yang akan mencari tampilan berdasarkan idsumber daya. Misalnya, pernyataan berikut menyetel mShowCountmenjadi TextView dengan show_countID sumber daya:

mShowCount = (TextView) findViewById(R.id.show_count);

Dari poin ini, kode Anda bisa menggunakan mShowCount untuk menyatakan TextView, sehingga bila Anda memperbarui mShowCount, tampilan akan diperbarui.

Misalnya, ketika tombol berikut dengan atribut android:onClick diketuk, onClick akan memanggil metode countUp() :

android:onClick="countUp"

Anda bisa mengimplementasikan countUp() untuk menaikkan hitungan, mengubah hitungan ke string, dan menyetel string sebagai teks untuk objek mShowCount :

+
public void countUp(View view) {
        mCount++;
        if (mShowCount != null)
            mShowCount.setText(Integer.toString(mCount));
}

Karena Anda sudah mengaitkan mShowCount dengan TextView untuk menampilkan hitungan, metode mShowCount.setText() memperbarui tampilan teks di layar.

 

1.3: Tampilan Bergulir dan Teks

Bab ini menjelaskan salah satu tampilan yang paling sering digunakan di aplikasi: TextView, yang menampilkan materi tekstual pada layar. TextView bisa digunakan untuk menampilkan pesan, respons dari database, atau bahkan keseluruhan artikel bergaya majalah yang bisa digulir pengguna. Bab ini juga menampilkan cara membuat tampilan bergulir untuk teks dan elemen lainnya.

TextView

Satu tampilan yang mungkin sering Anda gunakan adalah kelas TextView, yang merupakan subkelas dari kelas View yang menampilkan teks pada layar. Anda bisa menggunakan TextView untuk tampilan berukuran apa pun, mulai dari karakter atau kata tunggal hingga teks selayar penuh. Anda bisa menambahkan id sumber daya ke TextView dan mengontrol cara teks muncul dengan menggunakan atribut di file layout XML.

Anda bisa merujuk tampilan TextView di kode Java dengan menggunakan idsumber dayanya, dan memperbarui teks dari kode Anda. Jika Anda ingin memungkinkan pengguna mengedit teks, gunakan EditText, subkelas TextView yang memungkinkan pengeditan dan masukan teks. Anda mempelajari semua tentang EditText di bab lainnya.

Atribut TextView

Anda bisa menggunakan atribut XML untuk mengontrol:

  • Tempat memosisikan TextView di layout (seperti tampilan lainnya)
  • Cara munculnya tampilan itu sendiri, misalnya dengan warna latar belakang
  • Seperti apa teks terlihat dalam tampilan, misalnya teks awal dengan gaya, ukuran, dan warnanya

Misalnya, untuk menyetel lebar, tinggi, dan posisi dalam LinearLayout:

<TextView
   ...
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   … />

Untuk menyetel nilai teks awal tampilan, gunakan atribut android:text :

android:text="Hello World!"

A TextView Showing

Anda bisa mengekstrak string teks ke dalam sumber daya string (mungkin disebut hello_world) yang lebih mudah dikelola untuk versi aplikasi multibahasa, atau jika Anda perlu mengubah string di lain waktu. Setelah mengekstrak string, gunakan nama sumber daya string dengan @string/ untuk menetapkan teks:

android:text="@string/hello_world"

Atribut yang paling sering digunakan bersama TextView adalah sebagai berikut:

  • android:text: Menyetel teks yang akan ditampilkan.
  • android:textColor: Menyetel warna teks. Anda bisa menyetel atribut ke suatu nilai warna, sumber daya yang telah didefinisikan sebelumnya, atau tema. Sumber daya dan tema warna dijelaskan dalam bab lainnya.
  • android:textAppearance: Penampilan teks, termasuk warna, jenis huruf, gaya, dan ukurannya. Anda menyetel atribut ini untuk sumber daya gaya yang telah didefinisikan sebelumnya atau tema yang sudah mendefinisikan nilai-nilai ini.
  • android:textSize: Menyetel ukuran teks (jika belum disetel melalui android:textAppearance). Gunakan ukuran sp (piksel yang diskalakan) seperti 20sp atau 14.5sp, atau menyetel atribut untuk sumber daya atau tema yang telah didefinisikan sebelumnya.
  • android:textSize: Menyetel gaya teks (jika belum disetel melalui android:textAppearance). Gunakan normalbolditalic, atau bold|italic.
  • Android:typeface: Menyetel jenis huruf teks (jika belum disetel melalui android:textAppearance). Gunakan normalsansserif, atau monospace.
  • android:lineSpacingExtra: Menyetel spasi tambahan antar baris teks. Gunakan ukuran sp (piksel yang diskalakan) atau dp (piksel yang tidak tergantung perangkat), atau setel atribut ke sumber daya atau tema yang telah didefinisikan sebelumnya.
  • android:autoLink: Mengontrol apakah tautan seperti URL dan alamat email secara otomatis ditemukan dan diubah ke tautan yang dapat diklik (dapat disentuh). Gunakan salah satu dari berikut ini:

    • none: Tidak ada pola yang cocok (default).
    • web: Cocok dengan URL web.
    • email: Cocok dengan alamat email.
    • phone: Cocok dengan nomor telepon.
    • map: Cocok dengan alamat peta.
    • all: Cocok dengan semua pola (setara dengan web|email|telepon|peta).

    Misalnya, untuk menyetel atribut agar cocok dengan URL web, gunakan ini:

    android:autoLink="web"
    

Menggunakan tag yang disematkan dalam teks

Dalam aplikasi yang mengakses artikel majalah atau koran, artikel yang muncul mungkin berasal dari sumber online atau mungkin disimpan sebelumnya dalam database di perangkat. Anda juga bisa membuat teks sebagai satu string panjang di sumber daya strings.xml.

Dalam kasus lain, teks bisa berisi tag HTML yang disematkan atau kode pemformatan teks lainnya. Agar tampil dengan benar, tampilan teks harus diformat dengan aturan berikut:

  • Jika ada tanda apostrof (‘) di teks, Anda harus meloloskannya dengan mengawalinya dengan backslash (\’). Jika menggunakan tanda kutip ganda dalam teks, Anda juga harus meloloskannya (\”). Anda juga harus meloloskan karakter non-ASCII lainnya. Lihat bagian “Memformat dan Menata Gaya” pada Sumber Daya String untuk detail selengkapnya.
  • TextView mengabaikan semua tag HTML kecuali yang berikut ini:
    • Penggunaan tag HTML dan </b> di sekitar kata yang harus ditulis tebal.
    • Penggunaan tag HTML dan di sekitar kata yang harus ditulis miring. Akan tetapi perhatikan, jika menggunakan apostrof keriting dalam frasa miring, Anda harus menggantinya dengan apostrof tegak.
    • Anda bisa mengombinasikan tebal dan miring dengan mengombinasikan tag, seperti dalam kata…</i></b>.

Untuk membuat string teks panjang dalam file strings.xml, masukkan keseluruhan teks dalam <string name="your_string_name"></string> di file strings.xml (your_string_name adalah nama yang Anda berikan untuk sumber daya string, misalnya article_text).

Baris teks dalam file strings.xml tidak digulung ke baris berikutnya — melainkan memanjang melebihi margin kanan. Ini adalah perilaku yang benar. Setiap baris teks baru yang dimulai dari margin kiri menyatakan paragraf lengkap.

Masukkan \n untuk menyatakan akhir baris, dan \n lainnya untuk menyatakan baris kosong. Jika Anda tidak menambahkan karakter penutup baris, paragraf akan saling bertabrakan saat ditampilkan di layar.

Tip: Jika ingin melihat teks yang dibungkus dalam strings.xml, Anda bisa menekan Return atau Enter untuk memasukkan akhiran ganti baris, atau memformat teks terlebih dahulu dalam editor teks dengan akhiran ganti baris. Akhiran tidak akan ditampilkan di layar.

Merujuk TextView di kode

Untuk merujuk TextView di kode Java Anda, gunakan idsumber dayanya. Misalnya, untuk memperbarui TextView dengan teks baru, Anda perlu:

  1. Mencari TextView (dengan id show_count) dan menetapkannya ke variabel. Anda menggunakan metode findViewById() kelas View, dan merujuk ke tampilan yang ingin dicari dengan menggunakan format ini:

    R.id.view_id
    

    Dalam hal ini, view_id adalah identifier sumber daya untuk tampilan:

    mShowCount = (TextView) findViewById(R.id.show_count);
    
  2. Setelah mengambil tampilan sebagai variabel anggota TextView, selanjutnya Anda bisa menyetel teks untuk tampilan teks ke teks baru dengan menggunakan metode setText() kelas TextView:
    mShowCount.setText(mCount_text);
    

Tampilan bergulir

Jika informasi yang ingin ditampilkan di aplikasi Anda lebih besar dari tampilan perangkat, Anda bisa membuat tampilan bergulir yang bisa digulir pengguna secara vertikal dengan menggesek ke atas atau ke bawah, atau secara horizontal dengan menggesek ke kanan atau ke kiri.

Anda biasanya akan menggunakan tampilan bergulir untuk kabar berita, artikel, atau teks panjang lainnya yang tidak muat pada tampilan. Anda juga bisa menggunakan tampilan bergulir untuk mengombinasikan tampilan (seperti TextView dan Button) dalam tampilan bergulir.

Membuat layout dengan ScrollView

Kelas ScrollView menyediakan layout untuk tampilan yang bergulir vertikal. (Untuk pengguliran horizontal, Anda perlu menggunakan HorizontalScrollView.) ScrollView adalah subkelas FrameLayout, yang berarti Anda hanya bisa menempatkan satu tampilan sebagai anak; anak tersebut berisi keseluruhan materi yang akan digulir.ScrollView dengan Satu Tampilan Anak

Meskipun Anda hanya bisa menempatkan satu tampilan anak di dalam ScrollView, tampilan anak bisa menjadi grup tampilan dengan hierarki tampilan anak, seperti LinearLayout. Pilihan yang bagus untuk tampilan dalam ScrollView adalah LinearLayout yang disusun dalam orientasi vertikal.ScrollView dengan LinearLayout

ScrollView dan kinerja

Dengan ScrollView, semua tampilan Anda berada dalam memori dan dalam hierarki tampilan sekalipun tidak ditampilkan di layar. Ini membuat ScrollView berguna untuk menggulir laman teks berbentuk bebas dengan lancar, karena teks sudah ada di memori. Akan tetapi, ScrollView bisa menggunakan banyak memori, yang bisa memengaruhi kinerja aplikasi lainnya.

Menggunakan instance LinearLayout yang disarangkan juga bisa mengakibatkan hierarki tampilan yang terlalu dalam, sehingga bisa memperlambat kinerja. Menyarangkan sejumlah instance LinearLayout yang menggunakan atribut android:layout_weight bisa menjadi sangat mahal karena setiap tampilan anak perlu diukur dua kali. Pertimbangkan penggunaan layout yang lebih datar seperti RelativeLayout atau GridLayout untuk meningkatkan kinerja.

Layout kompleks dengan ScrollView mungkin mengalami masalah kinerja, khususnya dengan tampilan anak seperti gambar. Kami menyarankan agar Anda tidak menggunakan gambar bersama ScrollView. Untuk menampilkan daftar panjang item, atau gambar, pertimbangkan untuk menggunakan RecyclerView. Selain itu, menggunakan AsyncTask akan menyediakan cara sederhana untuk melakukan pekerjaan di luar thread utama, seperti memuat gambar dalam thread latar belakang, kemudian menerapkannya ke UI setelah selesai. AsyncTask dibahas di bab lainnya.

ScrollView dengan TextView

Untuk menampilkan artikel majalah yang dapat digulir pada layar, Anda dapat menggunakan RelativeLayout bagi layar yang menyertakan TextView terpisah untuk judul artikel, lainnya untuk subjudul artikel, dan TextView ketiga untuk teks artikel bergulir (lihat gambar di bawah ini), yang disetel dalam ScrollView. Satu-satunya bagian layar yang bergulir adalah ScrollView dengan teks artikel.Layout dengan ScrollView

ScrollView dengan LinearLayout

Grup tampilan ScrollView hanya bisa berisi satu tampilan; akan tetapi, tampilan tersebut bisa berupa grup tampilan yang berisi beberapa tampilan, misalnya LinearLayout. Anda bisa menyarangkan grup tampilan seperti LinearLayout dalam grup tampilan ScrollView, sehingga menggulir apa pun yang ada di dalam LinearLayout.

Misalnya, jika Anda ingin subjudul artikel digulir bersama dengan artikel meskipun berupa TextView terpisah, Anda bisa menambahkan LinearLayout dalam ScrollView, dan memindahkan TextView subjudul, bersama TextView artikel, ke dalam LinearLayout. Grup tampilan LinearLayout menjadi tampilan anak tunggal dalam ScrollView seperti yang ditampilkan dalam gambar di bawah ini, dan pengguna bisa menggulir keseluruhan grup tampilan tersebut: subjudul dan artikel.LinearLayout Di Dalam ScrollView

Saat menambahkan LinearLayout di dalam ScrollView, gunakan match_parent untuk atribut android:layout_width LinearLayout guna mencocokkan dengan lebar grup tampilan induk (ScrollView), dan gunakan wrap_content untuk atribut android:layout_height LinearLayout guna membuat grup tampilan cukup besar untuk menampung materi dan pengisinya.

Karena ScrollView hanya mendukung pengguliran vertikal, Anda harus menyetel orientasi LinearLayout ke vertikal (dengan menggunakan atribut android:orientation="vertical" ), sehingga keseluruhan LinearLayout akan bergulir secara vertikal. Misalnya, layout XML berikut menggulir TextView articlebersama article_subheading TextView:

<ScrollView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_below="@id/article_heading">

 <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical">

 <TextView
         android:id="@+id/article_subheading"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:padding="@dimen/padding_regular"
         android:text="@string/article_subtitle"
         android:textAppearance="@android:style/TextAppearance" />

 <TextView
         android:id="@+id/article"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:autoLink="web"
         android:lineSpacingExtra="@dimen/line_spacing"
         android:text="@string/article_text" />

 </LinearLayout>
</ScrollView>