Assalamualaikum Wr, Wb
kali ini, saya akan menjelaskan tentang tutorial cara membuat dua aktivitas pada android studio. bagi yang belum tahu ataupun sudah tahu, tidak salahnya melihat dan membaca artikel ini agar mengasah dan menambah ilmu pengetahuan tentang android, khususnya pemrogramannya.
- Seperti biasa, kita buat projek baru dengan
- Mulai Android Studio dan buat proyek Android Studio baru.
- Panggil aplikasi "TwoActivities" dan ubah domain perusahaan ke "android.example.com." Pilih SDK Minimum yang Anda gunakan di proyek sebelumnya.
- Pilih Empty Activity untuk template proyek. Klik Next.
- Terima nama aktivitas default (MainActivity). Pastikan kotak Generate Layout file dicentang. Klik Finish.
- Buka main_activity.xml. pilih desain dan hapus TextView yang bertuliskan Hellow World.
- Tambahkan button ke dalam layout, posisinya bebas.
- beralih ke XML editor (buka tab Text) dan masukan code berikut :
- pada gambar diatas, mungkin ada kesalahan pada method launchSecondActivity. untuk itu abaikan saja dlu dan akan dibereskan pada tahap berikutnya, jadi harap sabar..
- Letakan kursor pada kata "send".
- tekan ALT+ENTER dan pilih Extract string resource.
- setel nama sumber daya ke button_main dan OK.
- Pratinjau layout aktivitas utama dengan layout editor dibagian desain, harus tampak seperti ini :
- Code solusi sampai tahapan diatas :
<?xml version="1.0"encoding="utf-8"?> <RelativeLayoutxmlns: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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"><Button android:id="@+id/button_main" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:onClick="launchSecondActivity" android:text="@string/button_main" /> </RelativeLayout>
- Dalam Editor XML, letakkan kursor pada kata "launchSecondActivity".
- Tekan Alt-Enter (Option-Enter di Mac) dan pilih Create 'launchSecondActivity(View)' dalam 'MainActivity.
- File MainActivity.java terbuka, dan Android Studio membuat metode kerangka untuk handler onClick.
- Dalam launchSecondActivity , tambahkan pernyataan log yang bernama "Button Clicked!"
Log.d(LOG_TAG, "Button clicked!");
- LOG_TAG akan terlihat berwarna merah. Definisi untuk variabel tersebut akan ditambahkan dalam langkah selanjutnya.
- Tempatkan kursor pada kata "Log" dan tekan Alt-Enter (Option-Enter di Mac). Android Studio menambahkan pernyataan impor untuk android.util.Log.
- Di bagian atas kelas, tambahkan konstanta untuk variabel LOG_TAG:
private static final String LOG_TAG =
MainActivity.class.getSimpleName();
MainActivity.class.getSimpleName();
- Jalankan aplikasi Anda. Saat mengeklik tombol "Send", Anda akan melihat pesan "Button Clicked!" di Android Monitor (logcat). Jika ada terlalu banyak keluaran di monitor, ketik MainActivity di dalam kotak pencarian dan log hanya akan menunjukkan baris yang cocok dengan tag tersebut.
- Membuat aktivitas kedua.
- Klik folder app untuk proyek Anda dan pilih File > New > Activity > Empty Activity.
- Namakan aktivitas baru "SecondActivity." Pastikan Generate Layout File dicentang, dan nama layout akan diisi dengan activity_second.
- Klik Finish. Android Studio menambahkan layout aktivitas baru (activity_second) dan file Java baru (SecondActivity) ke proyek Anda untuk aktivitas baru tersebut. Ini juga akan memperbarui manifes Android untuk menyertakan aktivitas baru.
- Buka manifests/AndroidManifest.xml .
- Temukan elemen <activity> yang dibuat Android Studio untuk aktivitas kedua.
<activity android:name=".SecondActivity"></activity>
- 3. Tambahkan atribut ini ke elemen <activity> :
- Atribut label menambahkan judul aktivitas ke bilah tindakan.
- Atribut parentActivityName menandakan bahwa aktivitas utama adalah induk aktivitas kedua.
- Tempatkan kursor di "Second Activity" dan tekan Alt-Enter.
- Pilih Extract string resource, namakan sumber daya "activity2_name", dan klik OK. Android Studio menambahkan sumber daya string untuk label aktivitas.
- Tambahkan elemen <meta-data> element inside the <activity> di dalam elemen untuk aktivitas kedua. Gunakan atribut ini:
- Kode solusi pada file AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hann.twoactivities"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
- Nilai textAppearance itu menandakan ukuran gaya font.
- Ekstrak string "Message Received" ke sumber daya bernama text_header.
- Pratinjau layout dalam Layout Editor. Harus terlihat seperti ini:
- Kode solusi setelah tahap diatas :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".SecondActivity"> <TextView android:id="@+id/text_header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:text="@string/text_header" android:textAppearance="?android:attr/textAppearanceMedium" android:textStyle="bold" /> </RelativeLayout>
- Buka file MainActivity.java.
- Buat intent pada launchSecondActivity()
Intent intent = new Intent(this, SecondActivity.class);
- Tempatkan kursor di intent dan tekan Alt-Enter untuk menambahkan impor ke kelas intent.
- Panggil metode startActivity() dengan intent baru sebagai argumennya.
startActivity(intent);
- Tambahkan EditText pada activity_main.xml dan tambahkan atribut seperti dibawah ini :
- posisinya berada dibawah button
- Ekstrak string "Enter Your Message Here" ke sumber daya bernama editText_main.
- Solusi kode setalah melalkukan beberapa tahap diatas :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Button android:id="@+id/button_main" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:onClick="launchSecondActivity" android:text="@string/button_main" /> <EditText android:id="@+id/editText_main" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_toLeftOf="@+id/button_main" android:layout_toStartOf="@+id/button_main" android:hint="@string/editText_main" /> </RelativeLayout>
- Buka java/com.example.android.twoactivities/MainActivity .
- Tambahkan konstanta publik di bagian atas kelas untuk mendefinisikan kunci untuk ekstra intent:
public static final String EXTRA_MESSAGE =
"com.example.android.twoactivities.extra.MESSAGE";
- Tambahkan variabel privat di bagian atas kelas untuk menampung objek EditText. Mengimpor kelas EditText.
private EditText mMessageEditText;
- Dalam metode onCreate(), gunakan findViewByID untuk mendapatkan referensi tentang contoh EditText dan menetapkannya ke variabel privat tersebut:
mMessageEditText = (EditText) findViewById(R.id.editText_main);
- Dalam metode launchSecondActivity(), di bawah intent baru, dapatkan teks dari EditText sebagai string:
String message = mMessageEditText.getText().toString();
- Tambahkan string tersebut ke intent sebagai sebuah ekstra dengan konstanta EXTRA_MESSAGE sebagai kunci dan string-nya sebagai nilai:
intent.putExtra(EXTRA_MESSAGE, message);
- Kode solusi untuk langkah sampai diatas :
package com.example.hann.twoactivities; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class SecondActivity extends AppCompatActivity { public static final String EXTRA_REPLY = "com.example.android.twoactivities.extra.REPLY"; private EditText mReply; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); mReply = (EditText) findViewById(R.id.editText_second); Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); TextView textView = (TextView) findViewById(R.id.text_message); if (textView != null) { textView.setText(message); } } public void returnReply(View view) { String reply = mReply.getText().toString(); Intent replyIntent = new Intent(); replyIntent.putExtra(EXTRA_REPLY, reply); setResult(RESULT_OK, replyIntent); finish(); } }
- Buka res/layout/activity_second.xml.
- Tambahkan TextView kedua. Berikan atribut berikut pada TextView:
- Kode solusi jika bingung :
<RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".SecondActivity"> <TextView android:id="@+id/text_header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:text="@string/text_header" android:textAppearance="?android:attr/textAppearanceMedium" android:textStyle="bold" /> <TextView android:id="@+id/text_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/text_header" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout>
- Buka SecondActivity.java salin kode berikut :
package com.example.hann.twoactivities; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class SecondActivity extends AppCompatActivity { public static final String EXTRA_REPLY = "com.example.android.twoactivities.extra.REPLY"; private EditText mReply; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); mReply = (EditText) findViewById(R.id.editText_second); Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); TextView textView = (TextView) findViewById(R.id.text_message); if (textView != null) { textView.setText(message); } }
- Buka MainActivity.java salin kode berikut :
package com.example.hann.twoactivities; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private static final String LOG_TAG = MainActivity.class.getSimpleName(); public static final String EXTRA_MESSAGE = "com.example.android.twoactivities.extra.MESSAGE"; public static final int TEXT_REQUEST = 1; private EditText mMessageEditText; private TextView mReplyHeadTextView; private TextView mReplyTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMessageEditText = (EditText) findViewById(R.id.editText_main); mReplyHeadTextView = (TextView) findViewById(R.id.text_header_reply); mReplyTextView = (TextView) findViewById(R.id.text_message_reply); } public void launchSecondActivity(View view) { Log.d(LOG_TAG, "Button clicked!"); Intent intent = new Intent(this, SecondActivity.class); String message = mMessageEditText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message); startActivityForResult(intent, TEXT_REQUEST); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Test for the right intent reply if (requestCode == TEXT_REQUEST) { // Test to make sure the intent reply result was good. if (resultCode == RESULT_OK) { String reply = data.getStringExtra(SecondActivity.EXTRA_REPLY); // Make the reply head visible. mReplyHeadTextView.setVisibility(View.VISIBLE); // Set the reply and make it visible. mReplyTextView.setText(reply); mReplyTextView.setVisibility(View.VISIBLE); } } } }
- Buka file activity_main.xml salin kode berikut :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:id="@+id/text_header_reply" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:text="@string/text_header_reply" android:textAppearance="?android:attr/textAppearanceMedium" android:textStyle="bold" android:visibility="invisible" /> <TextView android:id="@+id/text_message_reply" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/text_header_reply" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin" android:textAppearance="?android:attr/textAppearanceMedium" android:visibility="invisible" /> <Button android:id="@+id/button_main" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:onClick="launchSecondActivity" android:text="@string/button_main" /> <EditText android:id="@+id/editText_main" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_toLeftOf="@+id/button_main" android:layout_toStartOf="@+id/button_main" android:hint="@string/editText_main" /> </RelativeLayout>
- Buka activity_second.xml salin kode berikut :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".SecondActivity"> <TextView android:id="@+id/text_header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:text="@string/text_header" android:textAppearance="?android:attr/textAppearanceMedium" android:textStyle="bold" /> <TextView android:id="@+id/text_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/text_header" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin" android:textAppearance="?android:attr/textAppearanceMedium" /> <Button android:id="@+id/button_second" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:onClick="returnReply" android:text="@string/button_second" /> <EditText android:id="@+id/editText_second" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_toLeftOf="@+id/button_second" android:layout_toStartOf="@id/button_second" android:hint="@string/editText_second" /> </RelativeLayout>
- Jangan lupa pada file strings.xml tambahkan code berikut :
<resources> <!-- Title of app --> <string name="app_name">Two Activities</string> <!-- Title of second activity --> <string name="activity2_name">Second Activity</string> <!-- Message header text (in second activity) [CHAR LIMIT=30]--> <string name="text_header">Message Received</string> <!-- Button label in main activity [CHAR LIMIT=10]--> <string name="button_main">Send</string> <!-- Hint for message edit text in main activity [CHAR LIMIT=30]--> <string name="editText_main">Enter Your Message Here</string> <!-- Button label in second activity [CHAR LIMIT=10]--> <string name="button_second">Reply</string> <!-- Hint for reply edit text in second activity [CHAR LIMIT=30]--> <string name="editText_second">Enter Your Reply Here</string> <!-- Reply header text in main activity [CHAR LIMIT=30]--> <string name="text_header_reply">Reply Received</string> </resources>
HASIL AKHIR
~~~ REGAR'S ~~~












