Apa itu Intent?
Buat satu project android, kemudian silakan pilih berkas activity_main.xml pada workspace kamu (res/layout/activity_main.xml), dan ikutin coding seperti di bawah :
<?xml version="1.0" encoding="utf-8"?></code><br /><code class="language-java"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"</code><br /><code class="language-java"> xmlns:tools="http://schemas.android.com/tools"</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="match_parent"</code><br /><code class="language-java"> android:orientation="vertical"</code><br /><code class="language-java"> android:padding="16dp"></code><br /><code class="language-java"> </code><br /><code class="language-java"> <Button</code><br /><code class="language-java"> android:id="@+id/btn_move_activity"</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="wrap_content"</code><br /><code class="language-java"> android:layout_marginBottom="16dp"</code><br /><code class="language-java"> android:text="@string/move_activity" /></code><br /><code class="language-java"> </code><br /><code class="language-java"> <Button</code><br /><code class="language-java"> android:id="@+id/btn_move_activity_data"</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="wrap_content"</code><br /><code class="language-java"> android:layout_marginBottom="16dp"</code><br /><code class="language-java"> android:text="@string/move_with_data" /></code><br /><code class="language-java"> </code><br /><code class="language-java"> <Button</code><br /><code class="language-java"> android:id="@+id/btn_dial_number"</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="wrap_content"</code><br /><code class="language-java"> android:layout_marginBottom="16dp"</code><br /><code class="language-java"> android:text="@string/dial_number" /></code><br /><code class="language-java"></LinearLayout>
dan atur juga resources pada berkas res/values/strings.xml seperti ini :
<resources></code><br /><code class="language-java"> <string name="app_name">MyIntentApp</string></code><br /><code class="language-java"> <string name="move_activity">Pindah Activity</string></code><br /><code class="language-java"> <string name="move_with_data">Pindah Activity dengan Data</string></code><br /><code class="language-java"> <string name="dial_number">Dial a Number</string></code><br /><code class="language-java"> <string name="data_received">Data Diterima</string></code><br /><code class="language-java"> <string name="this_is_moveactivity">Ini MoveActivity</string></code><br /><code class="language-java"></resources>
Jenis-jenis Intent
1. Explicit Intent
Selanjutnya setelah selesai, lanjutkan dengan membuka berkas MainActivity.Java dan lanjutkan ngoding baris-baris di bawah ini :
public class MainActivity extends AppCompatActivity implements View.OnClickListener{</code><br /><code class="language-java"> </code><br /><code class="language-java"> @Override</code><br /><code class="language-java"> protected void onCreate(Bundle savedInstanceState) {</code><br /><code class="language-java"> super.onCreate(savedInstanceState);</code><br /><code class="language-java"> setContentView(R.layout.activity_main);</code><br /><code class="language-java"> </code><br /><code class="language-java"> Button btnMoveActivity = findViewById(R.id.btn_move_activity);</code><br /><code class="language-java"> btnMoveActivity.setOnClickListener(this);</code><br /><code class="language-java"> </code><br /><code class="language-java"> Button btnMoveWithDataActivity = findViewById(R.id.btn_move_activity_data);</code><br /><code class="language-java"> btnMoveWithDataActivity.setOnClickListener(this);</code><br /><code class="language-java"> </code><br /><code class="language-java"> Button btnDialPhone = findViewById(R.id.btn_dial_number);</code><br /><code class="language-java"> btnDialPhone.setOnClickListener(this);</code><br /><code class="language-java"> }</code><br /><code class="language-java"> </code><br /><code class="language-java"> @Override</code><br /><code class="language-java"> public void onClick(View v) {</code><br /><code class="language-java"> if (v.getId() == R.id.btn_move_activity) {</code><br /><code class="language-java"> Intent moveIntent = new Intent(MainActivity.this, MoveActivity.class);</code><br /><code class="language-java"> startActivity(moveIntent);</code><br /><code class="language-java"> } else if (v.getId() == R.id.btn_move_activity_data) {</code><br /><code class="language-java"> Intent moveWithDataIntent = new Intent(MainActivity.this, MoveWithDataActivity.class);</code><br /><code class="language-java"> moveWithDataIntent.putExtra(MoveWithDataActivity.EXTRA_NAME, "DicodingAcademy Boy");</code><br /><code class="language-java"> moveWithDataIntent.putExtra(MoveWithDataActivity.EXTRA_AGE, 5);</code><br /><code class="language-java"> startActivity(moveWithDataIntent);</code><br /><code class="language-java"> } else if (v.getId() == R.id.btn_dial_number) {</code><br /><code class="language-java"> String phoneNumber = "081210841382";</code><br /><code class="language-java"> Intent dialPhoneIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber));</code><br /><code class="language-java"> startActivity(dialPhoneIntent);</code><br /><code class="language-java"> }</code><br /><code class="language-java"> }</code><br /><code class="language-java">}
2. Implicit Intent
Mengirim Data Antar Activity
Pertama buat activity baru untuk menampilkan perpindahan activity dengan cara sebagai berikut : Klik kanan di package utama aplikasi package name → New → Activity → Empty Activity. Dan beri nama dengan MoveActivity dan layout name activity_move. Lalu buka activity_move.xml dan tambahkan satu TextView seperti berikut :
<?xml version="1.0" encoding="utf-8"?></code><br /><code class="language-java"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"</code><br /><code class="language-java"> xmlns:tools="http://schemas.android.com/tools"</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="match_parent"</code><br /><code class="language-java"> android:padding="16dp"></code><br /><code class="language-java"> <TextView</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="wrap_content"</code><br /><code class="language-java"> android:text="@string/this_is_moveactivity" /></code><br /><code class="language-java"></RelativeLayout>
Mengirim Data
Kedua buat activity baru untuk menampilkan perpindahan activity dengan mengirim data dan beri nama dengan MoveWithDataActivity dan layout name activity_move_with_data. Lalu buka activity_move_with_data.xml dan tambahkan satu TextView seperti berikut :
<?xml version="1.0" encoding="utf-8"?></code><br /><code class="language-java"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="match_parent"</code><br /><code class="language-java"> android:padding="16dp"></code><br /><code class="language-java"> <TextView</code><br /><code class="language-java"> android:id="@+id/tv_data_received"</code><br /><code class="language-java"> android:layout_width="match_parent"</code><br /><code class="language-java"> android:layout_height="wrap_content"</code><br /><code class="language-java"> android:text="@string/data_received" /></code><br /><code class="language-java"></RelativeLayout>
Menerima Data
dan buka activity_move_with_data.java dan kondisikan sesuai perintah dibawah ini :
public class MoveWithDataActivity extends AppCompatActivity {</code><br /><code class="language-java"> public static final String EXTRA_AGE = "extra_age";</code><br /><code class="language-java"> public static final String EXTRA_NAME = "extra_name";</code><br /><code class="language-java"> </code><br /><code class="language-java"> @Override</code><br /><code class="language-java"> protected void onCreate(Bundle savedInstanceState) {</code><br /><code class="language-java"> super.onCreate(savedInstanceState);</code><br /><code class="language-java"> setContentView(R.layout.activity_move_with_data);</code><br /><code class="language-java"> </code><br /><code class="language-java"> TextView tvDataReceived = findViewById(R.id.tv_data_received);</code><br /><code class="language-java"> String name = getIntent().getStringExtra(EXTRA_NAME);</code><br /><code class="language-java"> int age = getIntent().getIntExtra(EXTRA_AGE, 0);</code><br /><code class="language-java"> String text = "Name : " + name + ",
Your Age : " + age;</code><br /><code class="language-java"> tvDataReceived.setText(text);</code><br /><code class="language-java"> }</code><br /><code class="language-java">}
Kesimpulan
Terakhir pastikan activity yang dibuat sudah ter-register pada AndroidManifest.xml, tampilan dapat dilihat seperti berikut :
<?xml version="1.0" encoding="utf-8"?></code><br /><code class="language-java"><manifest xmlns:android="http://schemas.android.com/apk/res/android"</code><br /><code class="language-java"> package="com.dicoding.picodiploma.myintentapp"></code><br /><code class="language-java"> </code><br /><code class="language-java"> <application</code><br /><code class="language-java"> android:allowBackup="true"</code><br /><code class="language-java"> android:icon="@mipmap/ic_launcher"</code><br /><code class="language-java"> android:label="@string/app_name"</code><br /><code class="language-java"> android:supportsRtl="true"</code><br /><code class="language-java"> android:theme="@style/AppTheme"></code><br /><code class="language-java"> <activity android:name=".MainActivity"></code><br /><code class="language-java"> <intent-filter></code><br /><code class="language-java"> <action android:name="android.intent.action.MAIN" /></code><br /><code class="language-java"> </code><br /><code class="language-java"> <category android:name="android.intent.category.LAUNCHER" /></code><br /><code class="language-java"> </intent-filter></code><br /><code class="language-java"> </activity></code><br /><code class="language-java"> <activity android:name=".MoveActivity" /></code><br /><code class="language-java"> <activity android:name=".MoveWithDataActivity " /></code><br /><code class="language-java"> </application></code><br /><code class="language-java"> </code><br /><code class="language-java"></manifest>
*Update Android Studio 4.1
Selamat mencoba, terima kasih.