Di android, Menu Option adalah kumpulan item menu untuk suatu aktivitas dan berguna untuk
mengimplementasikan tindakan yang memiliki dampak global pada aplikasi, seperti
Pengaturan, Pencarian, dll.
Dengan menggunakan Menu Option, kita dapat menggabungkan beberapa tindakan dan opsi
lain yang relevan dengan activity yan ada saat ini. Kita dapat menentukan item untuk menu
option dari Activity atau Fragment class.
Pada android studio, untuk mendefenisikan options menu, kita harus membuat folder menu di
dalam project resource directory (res/menu/) and buat sebuag file XML (menu_example) file to
build the menu.
Following is the example of defining a menu in an XML file (menu_example.xml).
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/logout"
android:title="Logout" />
<item android:id="@+id/regsitrasi"
android:title="Registrasi" />
<item android:id="@+id/share"
android:title="Share" />
</menu>
Pada Activity Utama kita perlu menggunakan metode override onCreateOptionsMenu() dan
mendefenisikan menu resource menggunakan MenuInflater.inflate() , seperti code dibawah ini
.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_example, menu);
return true;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.logout:
Intent i = new Intent(getApplicationContext(),Tugas2_151223.class);
startActivity(i);
return true;
case R.id.regsitrasi:
Toast.makeText(getApplicationContext(), "Your Choice Regsitrasi Menu",
Toast.LENGTH_LONG).show();
return true;
case R.id.share:
Toast.makeText(getApplicationContext(), "Your Choice Share Menu",
Toast.LENGTH_LONG).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
Keterangan :
Attribute Description
android:icon It is used to set the item's icon from the drawable folder.
android:showAsAction It is used to specify how the item should appear as an action item in
the app bar.
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_example, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.logout:
Intent i = new Intent(getApplicationContext(),Tugas2_151223.class);
startActivity(i);
return true;
case R.id.regsitrasi:
Toast.makeText(getApplicationContext(), "Your Choice Regsitrasi
Menu", Toast.LENGTH_LONG).show();
return true;
case R.id.share:
Toast.makeText(getApplicationContext(), "Your Choice Share Menu",
Toast.LENGTH_LONG).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
}
Step 4 : Run Project Android
BOTTOM MENU
Step 1 : Make sure you have design support library in your build.gradle.
dependencies {
………
implementation 'com.android.support:design:28.0.0'
………
}
Step 2 : Add below color, string values to your colors.xml and strings.xml.
Colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#d5ce92</color>
<color name="colorPrimaryDark">#fff38f</color>
<color name="colorAccent">#D81B60</color>
<color name="bgBottomNavigation">#fe485a</color>
</resources>
Strings.xml
<resources>
<string name="app_name">DIPANEGARA</string>
<string name="title_activity_bot">BotActivity</string>
<string name="title_home">Home</string>
<string name="title_dashboard">Dashboard</string>
<string name="title_notifications">Notifications</string>
</resources>
Step 3 : As the Bottom Navigation items rendered using a menu file, create a new xml
named navigation.xml under res ⇒ menu folder.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home" />
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard" />
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications" />
</menu>
Step 4 : Open the layout file of main activity i.e activity_main.xml and
add BottomNavigationView widget. Here we are also adding a FrameLayout to load
the Fragments when the navigation item is selected.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="205dp"
android:layout_height="229dp"
android:layout_marginTop="152dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/dipa" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableBottom="@drawable/undipalogo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="0dp"
android:layout_marginStart="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:itemBackground="@color/colorPrimary"
app:itemIconTint="@color/colorAccent"
app:itemTextColor="@android:color/white"
app:menu="@menu/navigation"/>
</androidx.constraintlayout.widget.ConstraintLayout>
toolbar = getSupportActionBar();
BottomNavigationView navigation = findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_dashboard:
toolbar.setTitle("Dasboard");
return true;
case R.id.navigation_home:
toolbar.setTitle("Home");
return true;
case R.id.navigation_notifications:
toolbar.setTitle("Notification");
return true;
}
return false;
}
};
}