BAB 5 Android Event Handling · PDF file05/10/2016 · Lab. Pemrograman Aplikasi...
Transcript of BAB 5 Android Event Handling · PDF file05/10/2016 · Lab. Pemrograman Aplikasi...
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
BAB 5Android Event Handling
Mahardeka Tri Ananta
Konten
• Event pada Widget
• Event Handler
• Event Listener
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Event
• Event adalah suatu cara untuk mengumpulkan data tentang interaksipengguna dengan komponen interaktif dari Aplikasi.
• Contoh: Aksi (action) yang terjadi ketika user berinteraksi denganwidget (clicks, typing, scrolling)
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (SoftCoding)
1. Interacting with widgets /views• in Layout, give that view a unique ID property value• in Java code, call findViewById to access its View object• pass it a parameter of R.id.your_unique_ID• cast the returned value to the appropriate type (Button, TextView,
etc.)• In Layout XML file:
<TextView android:id="@+id/textViewName"/>
• In Activity onCreate() method:TextView nameView = (TextView)findViewById(R.id.textViewName);
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (SoftCoding)
2. Modify onClick property in layout file.• Scroll down its Properties until you find onClick. or edit .XML file manually via
text.
• Type the name of a method you'll write to handle the click event
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (SoftCoding)
3. Add method in onclick Event in JavaCode• In your Activity, create method that have been registered in layout.
• Add View object in method parameter.
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
<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:orientation="vertical"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="call 0888111222"
android:id="@+id/button"
android:layout_gravity="center"
android:onClick="button1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"
android:id="@+id/button2"
android:layout_gravity="center"
android:onClick="button2" />
</LinearLayout>
activity_main.xml
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
public class MainActivity extends AppCompatActivity {
private Button button1, button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=(Button)findViewById(R.id.button);
button2=(Button)findViewById(R.id.button2);
}
public void button1(View view){
Intent dial = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:0888111222"));
startActivity(dial);
}
public void button2 (View view){
Toast.makeText(this,"you have pressed: " +button2.getText(), Toast.LENGTH_LONG).show();
}
}
MainActivity.java
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (Hard Coding)
• An event is handled by an event listener object.
• Define an object that implements event listener interface and register it with the designated View.• View.OnClickListener (for handling "clicks" on a View),
• View.OnTouchListener (for handling screen touch events),
• View.OnKeyListener (for handling device key presses).
• etc..
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (Hard Coding)
Illustration
View Widget
Button
Event Handler Object
setOnClickListener() onClick()
User Click
Event
View.OnClickListener
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (Hard Coding)
• Step 1: Add button to Activity• Activity.findViewById( buttonViewID )
• Step 2: Implement Event Handler… • for a Button click event means the handler object should implements the View.OnClickListener interface consists of TWO OPTIONS in the following:
1. using a separate (specific) object to handle event(s) that implements the interface, OR
2. have the Activity containing the button do the event handling and letting the Activity implements the interface
• Step 3: Register Event Handler to the button• button.setOnClickListener( clickEventHandlerObject )
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (Hard Coding) – Option 1• EVENT HANDLING CODE in separate object named mCorkyListener
// Create an anonymous implementation of OnClickListener STEP 2 private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {// do something when the button is clicked
}};
//Now inside your Activity class onCreate event methodprotected void onCreate(Bundle savedValues) {
...
// STEP 1: Capture our button from layoutButton button = (Button)findViewById(R.id.corky);
}
// STEP 3: Register the onClick listener // with the implementation abovebutton.setOnClickListener(mCorkyListener);
... Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Setting an Event Listener (Hard Coding) - Option 2
Here's the code to handle Button's click event using the Activity itself
public class ExampleActivity extends Activity implements OnClickListener {protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky); // STEP 1button.setOnClickListener(this); //STEP 2 – registration
}
// Implement the OnClickListener callback method// STEP 3 – event handler
public void onClick(View v) {
// do something when the button is clicked
}...
}
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
activity_main.xml
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
<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">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Penjumlahan 2 bilangan"
android:id="@+id/textView" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:hint="masukkan angka ke-1"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:hint="masukkan angka ke-2"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText3"
android:layout_gravity="center"
android:text="hasil: "
android:editable="false"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hitung"
android:id="@+id/button"
android:layout_gravity="center"/>
</LinearLayout>
activity_main.xml
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
public class MainActivity extends AppCompatActivity {
private EditText txtAngka1, txtAngka2, txtHasil;
private Button buttonHitung;
private View.OnClickListener click;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtAngka1= (EditText)findViewById(R.id.editText);
txtAngka2= (EditText)findViewById(R.id.editText2);
txtHasil = (EditText)findViewById(R.id.editText3);
buttonHitung = (Button)findViewById(R.id.button);
click = new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
int angka1 = Integer.parseInt(txtAngka1.getText().toString());
int angka2 = Integer.parseInt(txtAngka2.getText().toString());
int jumlah = angka1 + angka2;
txtHasil.setText(String.valueOf(jumlah));
}
catch (Exception e){
e.printStackTrace();
}
}
};
buttonHitung.setOnClickListener(click);
}
}
MainActivity.java
STEP 1
// Create an anonymous implementation of OnClickListener STEP 2
// STEP 3: Register the onClick listener
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
TUGAS KELOMPOK
• Buat sebuah aplikasi Android pada platform Google Android yang teridiri dari hanya 1 Activity, dengan menggunakan 4 event handler yang ada di bawah ini:
1. onClick()2. onLongClick()3. onFocusChange()4. onKey()5. onTouch()6. onCreateContextMenu()
• Jalankan aplikasi, kemudian amati perbedaan dari 4 event handler yang digunakan
• Buat dokumentasi (.pdf) yang berisi:1. Langkah2 implementasi Event Handling pada aplikasi yang Anda buat (dilengkapi dengan
screenshot)2. Jelaskan perbedaan dari 6 event handler yang ada di atas, dan berikan contoh kasus
penggunaannya
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
TUGAS KELOMPOK
• Nama File: PAPB-G-T3-Kelompok99
• Deadline: 6 OKTOBER 2015
• Dikumpulkan secara kolektif di koordinator kelas.
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
KUIS 1 PAPB 13 OKTOBER 2016 closed book (Tulis tangan [Teori & Code Completion])
Materi:1. Perkembangan Aplikasi Mobile2. Android Activities3. User Interface4. Event Handling
TERIMA KASIH SEMOGA BERMANFAAT
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB