![]() |
![]() |
![]() |
Android options menu, submenu and menu group example
Source for the common menu options - common_menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu1" android:alphabeticShortcut="a" android:title="Menu No. 1" android:orderInCategory="1" /> <item android:id="@+id/menu2" android:alphabeticShortcut="b" android:title="Menu No. 2" android:orderInCategory="2"> <menu > <group android:id="@+id/group2" android:checkableBehavior="single"> <item android:id="@+id/submenu1" android:title="SubMenu No. 1" /> <item android:id="@+id/submenu2" android:title="SubMenu No. 2" /> </group> </menu> </item> </menu>
Source for the main activity layout - activity_main.xml
<RelativeLayout 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" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="false" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="Main Activity" android:textAppearance="?android:attr/textAppearanceLarge" android:textStyle="bold" /> <Button android:id="@+id/nextActivity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="false" android:layout_alignParentTop="false" android:layout_below="@id/textView1" android:layout_centerHorizontal="true" android:text="Go to the next Activity" /> </RelativeLayout>
Source for the next activity layout - activity_next.xml
<RelativeLayout 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" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="false" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="Another Activity" android:textAppearance="?android:attr/textAppearanceLarge" android:textStyle="bold" /> <Button android:id="@+id/goBack" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="false" android:layout_alignParentTop="false" android:layout_below="@id/textView1" android:layout_centerHorizontal="true" android:text="Go back to previous Activity" /> </RelativeLayout>
Source for the base activity - BaseActivity.java
package com.as400samplecode; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class BaseActivity extends Activity{ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.common_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu1: Toast.makeText(this, "Clicked: Menu No. 1", Toast.LENGTH_SHORT).show(); return true; case R.id.submenu1: Toast.makeText(this, "Clicked: Menu No. 2 - SubMenu No .1", Toast.LENGTH_SHORT).show(); return true; case R.id.submenu2: Toast.makeText(this, "Clicked: Menu No. 2 - SubMenu No .2", Toast.LENGTH_SHORT).show(); return true; default: return super.onOptionsItemSelected(item); } } }
Source for the main activity - MainActivity.java
package com.as400samplecode; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends BaseActivity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button nextActivity = (Button) findViewById(R.id.nextActivity); nextActivity.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.nextActivity: Intent nextActivity = new Intent(this,NextActivity.class); startActivity(nextActivity); break; } } }
Source for the next activity - NextActivity.java
package com.as400samplecode; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class NextActivity extends BaseActivity implements OnClickListener{ private static final int MENU3 = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_next); Button goBack = (Button) findViewById(R.id.goBack); goBack.setOnClickListener(this); } @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem menu3 = menu.findItem(MENU3); if(menu3 == null){ menu3 = menu.add(Menu.NONE, MENU3, 3, "Menu No. 3"); } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch (item.getItemId()) { case MENU3: Toast.makeText(this, "Clicked: Menu No. 3", Toast.LENGTH_SHORT).show(); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.goBack: finish(); break; } } }
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.