Google berkomitmen untuk mendorong terwujudnya keadilan rasial bagi komunitas Kulit Hitam. Lihat caranya.

Memulai aktivitas lain

Setelah menyelesaikan tutorial sebelumnya, kini Anda memiliki aplikasi yang menunjukkan aktivitas yang terdiri dari satu layar dengan kolom teks dan tombol Send. Pada tutorial ini, Anda akan menambahkan beberapa kode ke MainActivity yang memulai aktivitas baru untuk menampilkan pesan saat pengguna mengetuk tombol Send.

Menanggapi tombol Send

Ikuti langkah berikut untuk menambahkan metode ke class MainActivity yang dipanggil saat tombol Send diketuk:

  1. Dalam file app > java > com.example.myfirstapp > MainActivity, tambahkan stub metode sendMessage() berikut:

    Kotlin

        class MainActivity : AppCompatActivity() {
            override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)
                setContentView(R.layout.activity_main)
            }
    
            /** Called when the user taps the Send button */
            fun sendMessage(view: View) {
                // Do something in response to button
            }
        }
        

    Java

        public class MainActivity extends AppCompatActivity {
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
            }
    
            /** Called when the user taps the Send button */
            public void sendMessage(View view) {
                // Do something in response to button
            }
        }
        

    Anda mungkin menemui error karena Android Studio tidak dapat menyelesaikan class View yang digunakan sebagai argumen metode. Untuk mengatasi error, klik deklarasi View, letakkan kursor Anda di atasnya, lalu tekan Alt+Enter, atau Option+Enter di Mac, untuk menjalankan Quick Fix. Jika muncul menu, pilih Import class.

  2. Kembali ke file activity_main.xml untuk memanggil metode dari tombol:
    1. Pilih tombol di Layout Editor.
    2. Di jendela Attributes, cari properti onClick lalu pilih sendMessage [MainActivity] dari menu drop-down.

    Sekarang, saat tombol diketuk, sistem akan memanggil metode sendMessage().

    Perhatikan detail dalam metode ini. Detail ini diperlukan agar sistem mengenali metode tersebut sebagai yang kompatibel dengan atribut android:onClick. Secara mendetail, metode ini memiliki karakteristik sebagai berikut:

    • Akses publik.
    • Void, atau di Kotlin, nilai hasil unit implisit.
    • View sebagai satu-satunya parameter. Ini adalah objek View yang Anda klik di akhir Langkah 1.
  3. Berikutnya, isi metode ini untuk membaca konten kolom teks dan mengirimkan teks ke aktivitas lain.

Membuat intent

Intent adalah objek yang menyediakan binding waktu proses antar komponen terpisah, seperti dua aktivitas. Intent merepresentasikan intent untuk melakukan sesuatu pada aplikasi. Anda bisa menggunakan intent untuk berbagai tugas, tetapi dalam tutorial ini, intent Anda akan memulai aktivitas lain.

Dalam MainActivity, tambahkan konstanta EXTRA_MESSAGE dan kode sendMessage(), seperti yang ditunjukkan berikut:

Kotlin

    const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"

    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
        }

        /** Called when the user taps the Send button */
        fun sendMessage(view: View) {
            val editText = findViewById<EditText>(R.id.editText)
            val message = editText.text.toString()
            val intent = Intent(this, DisplayMessageActivity::class.java).apply {
                putExtra(EXTRA_MESSAGE, message)
            }
            startActivity(intent)
        }
    }
    

Java

    public class MainActivity extends AppCompatActivity {
        public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }

        /** Called when the user taps the Send button */
        public void sendMessage(View view) {
            Intent intent = new Intent(this, DisplayMessageActivity.class);
            EditText editText = (EditText) findViewById(R.id.editText);
            String message = editText.getText().toString();
            intent.putExtra(EXTRA_MESSAGE, message);
            startActivity(intent);
        }
    }
    

Antisipasi Android Studio menjumpai error Cannot resolve symbol lagi. Untuk mengatasi error ini, tekan Alt+Enter, atau Option+Return pada Mac. Anda akan mendapatkan impor berikut:

Kotlin

    import androidx.appcompat.app.AppCompatActivity
    import android.content.Intent
    import android.os.Bundle
    import android.view.View
    import android.widget.EditText
    

Java

    import androidx.appcompat.app.AppCompatActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    

Error masih ada untuk DisplayMessageActivity, tetapi itu bukan masalah. Anda dapat memperbaikinya di bagian berikutnya.

Berikut adalah apa yang terjadi di sendMessage():

  • Konstruktor Intent menggunakan dua parameter, Context dan Class.

    Parameter Context digunakan terlebih dahulu karena class Activity adalah subclass dari Context.

    Parameter Class komponen aplikasi, yang menjadi target sistem dalam mengirimkan Intent,, dalam hal ini, merupakan aktivitas yang akan dimulai.

  • Metode putExtra() menambahkan nilai EditText ke intent. Intent dapat membawa jenis data sebagai key-value pair bernama extras.

    Kunci Anda adalah konstanta publik EXTRA_MESSAGE karena aktivitas berikutnya menggunakan kunci untuk mendapatkan kembali nilai teks. Sangat disarankan untuk menentukan kunci bagi tambahan intent dengan nama paket aplikasi Anda sebagai awalan. Hal ini akan memastikan bahwa kunci tetap unik seandainya aplikasi Anda berinteraksi dengan aplikasi lain.

  • Metode startActivity() memulai instance DisplayMessageActivity yang ditentukan oleh Intent. Selanjutnya, Anda perlu membuat class tersebut.

Membuat aktivitas kedua

Untuk membuat aktivitas kedua, ikuti langkah berikut:

  1. Pada jendela Project, klik kanan folder app, lalu pilih New > Activity > Empty Activity.
  2. Pada jendela Configure Activity, masukkan "DisplayMessageActivity" untuk Activity Name. Biarkan semua properti lain disetel ke default, lalu klik Finish.

Android Studio otomatis melakukan tiga hal:

  • Membuat file DisplayMessageActivity.
  • Membuat file tata letak activity_display_message.xml, yang sesuai dengan file DisplayMessageActivity.
  • Menambahkan elemen <activity> yang diperlukan di AndroidManifest.xml.

Jika menjalankan aplikasi dan mengetuk tombol pada aktivitas pertama, aktivitas kedua akan dimulai, tetapi kosong. Hal ini dikarenakan aktivitas kedua menggunakan tata letak kosong yang disediakan oleh template.

Menambahkan tampilan teks

Tampilan teks yang ditempatkan di tengah bagian atas tata letak.
Gambar 1. Tampilan teks yang ditempatkan di tengah bagian atas tata letak.

Aktivitas baru ini berisi file tata letak kosong. Ikuti langkah-langkah berikut untuk menambahkan tampilan teks ke tempat pesan muncul:

  1. Buka file app > res > layout > activity_display_message.xml.
  2. Klik Enable Autoconnection to Parent pada toolbar. Tindakan ini memungkinkan Autoconnect. Lihat gambar 1.
  3. Pada panel Palette, klik Text, lalu tarik TextView ke dalam tata letak dan lepaskan di dekat bagian tengah-atas tata letak agar pas dengan garis vertikal yang ditampilkan. Autoconnect menambahkan pembatas kiri dan kanan untuk meletakkan tampilan di tengah posisi horizontal.
  4. Buat satu pembatas lagi dari bagian atas tampilan teks ke bagian atas tata letak sehingga tampak seperti yang ditunjukkan dalam gambar 1.

Secara opsional, Anda bisa melakukan penyesuaian pada gaya teks jika Anda memperluas textAppearance pada panel Common Attributes jendela Attributes, dan mengubah atribut seperti textSize dan textColor.

Menampilkan pesan

Pada langkah ini, Anda perlu mengubah aktivitas kedua untuk menampilkan pesan yang diteruskan oleh aktivitas pertama.

  1. Di DisplayMessageActivity, tambahkan kode berikut ke metode onCreate():

    Kotlin

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_display_message)
            
            // Get the Intent that started this activity and extract the string
            val message = intent.getStringExtra(EXTRA_MESSAGE)
    
            // Capture the layout's TextView and set the string as its text
            val textView = findViewById<TextView>(R.id.textView).apply {
                text = message
            }
        }
        

    Java

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_display_message);
            
            // Get the Intent that started this activity and extract the string
            Intent intent = getIntent();
            String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    
            // Capture the layout's TextView and set the string as its text
            TextView textView = findViewById(R.id.textView);
            textView.setText(message);
        }
        
  2. Tekan Alt + Enter, atau Option + Return pada Mac, untuk mengimpor class lain yang diperlukan:

    Kotlin

        import androidx.appcompat.app.AppCompatActivity
        import android.content.Intent
        import android.os.Bundle
        import android.widget.TextView
        

    Java

        import androidx.appcompat.app.AppCompatActivity;
        import android.content.Intent;
        import android.os.Bundle;
        import android.widget.TextView;
        

Menambahkan navigasi ke atas

Setiap layar pada aplikasi yang bukan merupakan titik masuk utama, yang mana semua layar bukan layar utama, harus menyediakan navigasi yang mengarahkan pengguna ke layar induk logis dalam hierarki aplikasi. Untuk melakukannya, tambahkan tombol Up pada panel aplikasi.

Untuk menambahkan tombol Up, Anda perlu mendeklarasikan aktivitas mana yang merupakan induk logis dalam file AndroidManifest.xml. Buka file pada app > manifests > AndroidManifest.xml, cari tag <activity> untuk DisplayMessageActivity, lalu ganti dengan kode berikut:

    <activity android:name=".DisplayMessageActivity"
              android:parentActivityName=".MainActivity">
        <!-- The meta-data tag is required if you support API level 15 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
    

Sekarang, sistem Android akan otomatis menambahkan tombol Up ke panel aplikasi.

Menjalankan aplikasi

Klik Apply Changes pada toolbar untuk menjalankan aplikasi. Saat terbuka, ketik pesan di kolom teks, lalu ketuk Send untuk melihat pesan yang muncul di aktivitas kedua.

Aplikasi terbuka, dengan teks masuk pada layar kiri dan ditampilkan di sebelah kanan.
Gambar 2. Aplikasi terbuka, dengan teks masuk pada layar kiri dan ditampilkan di sebelah kanan.

Selamat, Anda berhasil membuat aplikasi Android pertama Anda!

Untuk terus mempelajari dasar-dasar tentang pengembangan aplikasi Android, kembali ke Membuat aplikasi pertama dan ikuti link lain yang disediakan di sana.