CodeLab Session 1 - Intent
-
Upload
putra-tasik -
Category
Documents
-
view
9 -
download
2
description
Transcript of CodeLab Session 1 - Intent
Session 1 : Mengembangkan Aplikasi Demo fungsi
Intent pada Aplikasi Android
Penjelasan singkat :
1. Materi ini untuk mengenalkan berpindah halaman dengan Intent
a. Satu Activity ke Activity lain tanpa data
b. Satu Activity ke Activity lain dengan data
c. Activity mengaktifkan Aplikasi lain
2. Ikuti cara pembuatan project pada CodeLab sebelumnya
Langkah – langkah :
1. Pada activity_main.xml silakan ketikan ketikan kode seperti dibawah ini
<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"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_sub_1"
android:text="Ke Activity Sub 1"
android:layout_marginBottom="8dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_sub_2"
android:text="Ke Activity Sub 2"
android:layout_marginBottom="8dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_dial"
android:text="Ke Activity Dial"
android:layout_marginBottom="8dp"/>
</LinearLayout>
2. Membuat Activity baru dengan cara pada Package utama (bukan yang ada AndroidTest)
silakan klik kanan New Activity Blank Activity seperti dibawah ini
Lalu beri Nama Sub1Activity
3. Pada activity_sub1.xml silakan modifikasi seperti ini
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.nbs.app.sampleintent.Sub1Activity">
<TextView android:text="Halo Ini Sub Activity 1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
4. Buat satu Activity baru dengan nama Sub2Activity dengan cara yang sama seperti diatas dan
pada activity_sub_2.xml silakan modifikasi kodenya seperti berikut :
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.nbs.app.sampleintent.Sub2Activity">
<TextView android:text="Data yang dikirim"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txt_data"/>
</RelativeLayout>
5. Pada Sub2Activity.java silakan modifikasi kodenya seperti ini untuk implementasi
penerimaan data dari Intent yang dikirim.
package com.nbs.app.sampleintent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class Sub2Activity extends ActionBarActivity {
public static String KEY_DATA = "data";
private String receivedData = null;
private TextView txtData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub2);
txtData = (TextView)findViewById(R.id.txt_data);
receivedData = getIntent().getStringExtra(KEY_DATA);
txtData.setText(receivedData);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.menu_sub2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
6. Pada MainActivity.java kita modifikasi kodenya untuk implementasi perpindahan Activity
dengan atau tanpa data atau mengaktifkan aplikasi lain. Dalam case ini adalah dial phone.
7. package com.nbs.app.sampleintent;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
private Button btnSub1, btnSub2, btnDial;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSub1 = (Button)findViewById(R.id.btn_activity_sub_1);
btnSub2 = (Button)findViewById(R.id.btn_activity_sub_2);
btnDial = (Button)findViewById(R.id.btn_activity_dial);
btnSub1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
Sub1Activity.class);
startActivity(intent);
}
});
btnSub2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,
Sub2Activity.class);
intent.putExtra(Sub2Activity.KEY_DATA, "Training
Aplikasi Android");
startActivityForResult(intent, 0);
}
});
btnDial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse("tel:082121212093"));
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it
is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
8. Silakan Run project diatas.