Options Menu Fragment - Java
Options Menu Fragment - Android Studio - Java
This will cover the followings:✓Use Options Menu / Actionbar menu
✓Use Options Menu in fragments
✓Add items with icons in options menu
✓Show different options of an options menu in each fragment
✓Handle options menu's item clicks
>>Watch For Koltin
Video:
Step 1: Create a new project OR Open your project
Step 2: Code:
menu_main.xml<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_settings" android:title="Settings"/> <item android:id="@+id/action_sort" android:title="Sort" app:showAsAction="always" android:icon="@drawable/ic_sort_white"/> </menu>
FragmentOne.java
package com.blogspot.atifsoftwares.myapplication; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; /** * A simple {@link Fragment} subclass. */ public class FragmentOne extends Fragment { public FragmentOne() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_fragment_one, container, false); } /*Enable options menu in this fragment*/ @Override public void onCreate(@Nullable Bundle savedInstanceState) { setHasOptionsMenu(true); super.onCreate(savedInstanceState); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { //inflate menu inflater.inflate(R.menu.menu_main, menu); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { //handle menu item clicks int id = item.getItemId(); if (id == R.id.action_settings) { //do your function here Toast.makeText(getActivity(), "Settings", Toast.LENGTH_SHORT).show(); } if (id == R.id.action_sort) { //do your function here Toast.makeText(getActivity(), "Sort", Toast.LENGTH_SHORT).show(); } return super.onOptionsItemSelected(item); } }
FragmentTwo.java
package com.blogspot.atifsoftwares.myapplication; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; /** * A simple {@link Fragment} subclass. */ public class FragmentTwo extends Fragment { public FragmentTwo() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_fragment_two, container, false); } /*Enable options menu in this fragment*/ @Override public void onCreate(@Nullable Bundle savedInstanceState) { setHasOptionsMenu(true); super.onCreate(savedInstanceState); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { //inflate menu inflater.inflate(R.menu.menu_main, menu); //hide item (sort) menu.findItem(R.id.action_sort).setVisible(false); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { //handle menu item clicks int id = item.getItemId(); if (id == R.id.action_settings) { //do your function here Toast.makeText(getActivity(), "Settings", Toast.LENGTH_SHORT).show(); } return super.onOptionsItemSelected(item); } }
FragmentThree.java
package com.blogspot.atifsoftwares.myapplication; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * A simple {@link Fragment} subclass. */ public class FragmentThree extends Fragment { public FragmentThree() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_fragment_three, container, false); } }
Step 3: Run Project
OutputOptions Menu Fragment - Android Studio - Java |
thanx
ReplyDelete