Men-Custom Action Item dan Icon App

Dalam contoh latihan sebelumnya, item-item menu ditampilkan tanpa teks. Latihan ini masih melanjutkan kode-kode pada project latihan sebelumnya. Bila kita ingin menampilkan teks untuk action item plus icon, kita bisa menggunakan tanda operator “|” bersama dengan konstanta ‘MenuItem.SHOW_AS_ACTION_WITH_TEXT’:
MenuItem menu1 = menu.add(0,0,0, "Item 1");
{
menu1.setIcon(R.drawable.ic_launcher);
menu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
MenuItem.SHOW_AS_ACTION_WITH_TEXT
);
}
Kode tersebut akan menampilkan icon dan teks dari masing-masing item menu (bila ruangnya cukup). Lihat gambar di bagian bawah.

Selain bisa men-klik action item, user juga bisa men-klik icon app di Action Bar. Bila icon app di-klik, method ‘onOptionsItemSelected()’ dipanggil. Untuk mengetahui bahwa icon app sedang dipanggil, kita bisa men-cek ID nya melalui konstanta ‘android.R.id.home’ seperti berikut:
private boolean MenuChoice(MenuItem item)
{
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(this, "Anda klik icon app", Toast.LENGTH_SHORT).show();

case 0:
Toast.makeText(this, "Anda klik item 1", Toast.LENGTH_LONG).show();
return true;
case 1:
Toast.makeText(this, "Anda klik item 2", Toast.LENGTH_LONG).show();
return true;
case 2:
Toast.makeText(this, "Anda klik item 3", Toast.LENGTH_LONG).show();
return true;
case 3:
Toast.makeText(this, "Anda klik item 4", Toast.LENGTH_LONG).show();
return true;
case 4:
Toast.makeText(this, "Anda klik item 5", Toast.LENGTH_LONG).show();
return true;
}
return false;
}
Supaya icon app bisa di-klik, kita perlu memanggil method ‘setDisplayHomeAsUpEnabled()’ seperti berikut:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
//actionBar.hide();
//actionBar.show(); //utk memunculkan lagi
}
Icon app (tanda panah) dan icon Action item + teks ditampilkan bila ruangan mencukupi
Icon app sering digunakan oleh app untuk kembali ke activity utama (home). Misalnya, app kita akan terdiri dari beberapa activity, dan kita bisa menggunakan icon app sebagai shortcut untuk user kembali ke activity utama pada app kita. Untuk melakukan hal ini, praktik kode yang baik adalah bahwa kita haus selalu membuat object ‘Intent’ dan men-set-nya dengan menggunakan flag ‘Intent.FLAG_ACTIVITY_CLEAR_TOP’:
case android.R.id.home:
Toast.makeText(this, "Anda klik icon app", Toast.LENGTH_SHORT).show();
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

return true;
Flag ‘Intent.FLAG_ACTIVITY_CLEAR_TOP’ akan memastikan bahwa serangkaian activity di dalam tumpukan akan dibersihkan bila iser men-klik app icon pada Action Bar. Dengan cara ini, bila user men-klik tombol back, activity yang lain pada app ini tidak akan muncuk lagi.

No comments: