Skip to content

Most visited

Recently visited

navigation

Memulai Aktivitas Lain

Setelah menyelesaikan pelajaran sebelumnya, Anda memiliki aplikasi yang menampilkan aktivitas (satu layar) dengan satu bidang teks dan satu tombol. Dalam pelajaran ini, Anda akan menambahkan beberapa kode ke MainActivity yang memulai aktivitas baru bila pengguna mengeklik tombol Send.

Merespons Tombol Send

  1. Di file res > layout > activity_main.xml, tambahkan atribut android:onClick ke elemen <Button> seperti yang ditampilkan di bawah ini:
    <Button
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="@string/button_send"
          android:onClick="sendMessage" />
        

    Atribut ini memberi tahu sistem untuk memanggil metode sendMessage() di aktivitas Anda setiap saat pengguna mengeklik tombol.

  2. Di file java > com.example.myfirstapp > MainActivity.java, tambahkan stub metode sendMessage() seperti yang ditunjukkan di bawah:
    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        /** Called when the user clicks the Send button */
        public void sendMessage(View view) {
            // Do something in response to button
        }
    }

    Agar sistem dapat mencocokkan metode ini dengan nama metode yang diberikan pada android:onClick, tanda tangan harus sama dengan yang ditampilkan. Khususnya, metode ini harus:

    • Bersifat publik
    • Memiliki nilai pengembalian void
    • Memiliki View sebagai satu-satunya parameter (ini akan menjadi View yang diklik)

Berikutnya, Anda perlu mengisi metode ini untuk membaca isi bidang teks dan mengirimkan teks itu ke aktivitas lain.

Membangun Maksud

Intent adalah objek yang menyediakan waktu proses yang mengikat komponen-komponen terpisah (misalnya dua aktivitas). Intent menyatakan "maksud melakukan sesuatu" dari aplikasi. Anda dapat menggunakan maksud untuk berbagai jenis tugas, tetapi dalam pelajaran ini, maksud Anda memulai aktivitas lain.

Di MainActivity.java, tambahkan kode yang ditampilkan di bawah ini ke sendMessage():

public class MainActivity extends AppCompatActivity {
    public final static 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 clicks the Send button */
    public void sendMessage(View view) {
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }
}

Android Studio akan menampilkan kesalahan Cannot resolve symbol karena kelas referensi kode ini tidak diimpor. Anda dapat memecahkan sebagian dengan fungsi "import class" Android Studio dengan menekan Alt + Enter (atau Option + Return di Mac). Impor Anda harus berakhir sebagai berikut:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

Kesalahan tetap untuk DisplayMessageActivity, tetapi itu bukan masalah; Anda akan memperbaikinya di bagian berikutnya.

Banyak hal yang terjadi di sendMessage(), jadi mari jelaskan apa yang terjadi.

Konstruktor Intent membutuhkan dua parameter:

Metode putExtra() menambahkan nilai EditText ke maksud. Intent bisa membawa tipe data sebagai pasangan nilai-kunci bernama extras. Kunci Anda adalah konstanta publik EXTRA_MESSAGE karena aktivitas berikutnya menggunakan kunci untuk mengambil nilai teks. Cara terbaik mendefinisikan kunci untuk tambahan maksud adalah menggunakan nama paket aplikasi Anda sebagai awalan. Ini akan memastikan kunci itu unik, seandainya aplikasi Anda berinteraksi dengan aplikasi lain.

Metode startActivity() memulai instance DisplayMessageActivity yang ditetapkan oleh Intent. Anda sekarang perlu membuat kelasnya.

Membuat Aktivitas Kedua

  1. Di jendela Project, klik kanan folder app dan pilih New > Activity > Empty Activity.
  2. Di jendela Configure Activity, ketik "DisplayMessageActivity" untuk Activity Name lalu klik Finish

Android Studio akan melakukan tiga hal secara otomatis:

Jika Anda menjalankan aplikasi dan mengeklik tombol Send pada aktivitas pertama, aktivitas kedua dimulai tetapi aktivitas kosong. Ini karena aktivitas kedua menggunakan layout kosong default disediakan oleh template.

Menampilkan Pesan

Sekarang Anda akan memodifikasi aktivitas kedua untuk menampilkan pesan yang diteruskan oleh aktivitas pertama.

  1. Di DisplayMessageActivity.java, tambahkan kode berikut ke metode onCreate():
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_display_message);
    
       Intent intent = getIntent();
       String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
       TextView textView = new TextView(this);
       textView.setTextSize(40);
       textView.setText(message);
    
       ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message);
       layout.addView(textView);
    }
  2. Tekan Alt + Enter (Option + Return di Mac) untuk mengimpor kelas yang tidak ada. Impor Anda seharusnya menjadi sebagai berikut:
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.ViewGroup;
    import android.widget.TextView;
    

Banyak hal terjadi di sini, jadi mari kita jelaskan:

  1. Pemanggilan getIntent() menarik maksud yang memulai aktivitas. Setiap Activity dipanggil oleh Intent, dengan cara apa pun pengguna masuk ke sana. Pemanggilan getStringExtra() mengambil data dari aktivitas pertama.
  2. Anda lewat program membuat TextView lalu menyetel ukuran dan pesannya.
  3. Anda menambahkan TextView ke layout yang diidentifikasi oleh R.id.activity_display_message. Anda membentuk layout ViewGroup karena itu superkelas semua layout dan mengandung metodeaddView() .

Catatan: Layout XML yang dihasilkan oleh versi Android Studio sebelumnya bisa jadi tidak menyertakan atribut android:id . Pemanggilan findViewById() akan gagal jika layout tidak memiliki atribut android:id. Jika demikian, buka activity_display_message.xml dan tambahkan atribut android:id="@+id/activity_display_message" ke elemen layout.

Anda sekarang bisa menjalankan aplikasi itu. Saat terbuka, ketik pesan di bidang teks, lalu klik Send. Aktivitas kedua menggantikan yang pertama di layar dan menampilkan pesan yang Anda ketik dalam aktivitas pertama.

Begitulah, Anda sudah membuat aplikasi Android pertama!

Untuk mengetahui selengkapnya, ikuti tautan di bawah untuk beralih ke kelas berikutnya.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.