BAB 5 Android Event Handling Mahardeka Tri Ananta
[email protected]
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Konten • Event pada Widget • Event Handler • Event Listener
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
Event • Event adalah suatu cara untuk mengumpulkan data tentang interaksi pengguna dengan komponen interaktif dari Aplikasi. • Contoh: Aksi (action) yang terjadi ketika user berinteraksi dengan widget (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:
• 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
activity_main.xml
<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" /> Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
MainActivity.java 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(); } } 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
User Click Event
View Widget Button setOnClickListener()
onClick()
Event Handler Object
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 method protected void onCreate(Bundle savedValues) { ... // STEP 1: Capture our button from layout Button button = (Button)findViewById(R.id.corky);
// STEP 3: Register the onClick listener // with the implementation above button.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 1 button.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
activity_main.xml
<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"/>
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
MainActivity.java
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);
STEP 1
// Create an anonymous implementation of OnClickListener STEP 2
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(); } } };// STEP 3: Register the onClick listener buttonHitung.setOnClickListener(click); }
}
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. 2. 3. 4. 5. 6.
onClick() onLongClick() onFocusChange() onKey() onTouch() onCreateContextMenu()
• Jalankan aplikasi, kemudian amati perbedaan dari 4 event handler yang digunakan • Buat dokumentasi (.pdf) yang berisi: 1. 2.
Langkah2 implementasi Event Handling pada aplikasi yang Anda buat (dilengkapi dengan screenshot) 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. KUIS 1 PAPB 13 OKTOBER 2016 closed book (Tulis tangan [Teori & Code Completion]) Materi: 1. Perkembangan Aplikasi Mobile 2. Android Activities 3. User Interface 4. Event Handling Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB
TERIMA KASIH SEMOGA BERMANFAAT
Lab. Pemrograman Aplikasi Perangkat Bergerak FILKOM UB